dt.jar和tools.jar

feichuangxinke 2010-04-20 01:00:29
网上找了很长时间,就是有点搞不清楚,这JDK的配置CLASSPATH中的dt.jar和tools.jar这两个文件到底是干什么的,有人说这个dt.jar是关于swing的 打开这个包确实可以看到和swing有关的类,说是如果用到swing就要配置这classpath,但是rt.jar中的swing呢 这个不才是真正的包含swing类库吗? 还有就是这两个包到底是用作开发的类库,还是JDK中的JAVAC等程序运行要的类库。 如果不路径这两个包对我们开发的程序中有什么影响?
...全文
3046 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Giberson1 2012-12-04
  • 打赏
  • 举报
回复
这个简单啊,你反编译看下就知道了,里面都有注释的
dxqrr 2012-12-04
  • 打赏
  • 举报
回复
嗯,说的不错
kevin_black 2012-12-03
  • 打赏
  • 举报
回复
谢一楼的了。
Showay518 2012-09-06
  • 打赏
  • 举报
回复
曾经也一直对这个问题感到困惑,现在稍稍有点明白了!
chenshuang_com 2012-07-17
  • 打赏
  • 举报
回复
tools.jar这个包用来在运行时编译java源文件,jsp转换之后的servlet程序编译就是这样的
aosica 2012-07-14
  • 打赏
  • 举报
回复
不错 学些了
Speeddsy 2012-06-16
  • 打赏
  • 举报
回复
不错,试了一下发现装上JDK1.7后,只需要配置PATH,ECLIPSE就可以启动了。其它都不用设置了
mhshran5408 2011-09-20
  • 打赏
  • 举报
回复
看了你们的回答才知道菜我这种鸟程序员要多学习啊
linkw1816 2011-09-20
  • 打赏
  • 举报
回复
学习了,多谢!
lingxiasandu 2011-09-20
  • 打赏
  • 举报
回复
每天都在用,但是没有想为什么这么用。受教了。
xiaona1047985204 2011-09-20
  • 打赏
  • 举报
回复
真是学习了 谢谢一楼的同志啊
TKD03072010 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hlw881008 的回复:]

dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置

rt.jar是JAVA基础类……
[/Quote]
不错 学习了
貌似 较新的JDK不用在为环境变量而麻烦了
zfq642773391 2010-04-20
  • 打赏
  • 举报
回复
最新的JDK版本连基本的环境都不用配置
  • 打赏
  • 举报
回复
如果你的 JDK 版本是 JDK 5 或者之后的,那就把 classpath 去掉,编译器会自动去寻找 tools.jar 的,如果用的是 JDK 5 以下的版本就加上去吧。
dhysf 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hlw881008 的回复:]
dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置

rt.jar是JAVA基础类库……
[/Quote]
呵呵
ThinkCat 2010-04-20
  • 打赏
  • 举报
回复
我也不明白,翻看了一下tools.jar和dt.jar发现:tools下的若干个文件里面有java、javac、javap等文件夹,应该就是对应相应命令;tools中还有一些与help、applet、jvm、security、datatype相关的文件夹,可能就是与相应命令有关的一些参数吧;dt.jar则大部分是与swing有关的东西。期待高人指点......
hlw881008 2010-04-20
  • 打赏
  • 举报
回复
dt.jar和tools.jar是两个java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。
而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置

rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库

设置在classpath里是为了让你 import *
---------------------------------------------------------------

web系统都用到tool.jar

你用winrar看看里面是什么内容啦
---------------------------------------------------------------

1.
rt.jar 默认就在 根classloader的加载路径里面 放在claspath是多此一举
不信你可以去掉classpath里面的rt.jar

然后用 java -verbose XXXX 的方式运行一个简单的类 就知道 JVM的系统根Loader的路径里面

不光rt.jar jre\lib下面的大部分jar 都在这个路径里

2.

tools.jar 是系统用来编译一个类的时候用到的 也就是javac的时候用到

javac XXX.java

实际上就是运行

java -Calsspath=%JAVA_HOME%\lib\tools.jar xx.xxx.Main XXX.java

javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面

3.
dt.jar是关于运行环境的类库,主要是swing的包 你要用到swing时最好加上


dt.jar好像是swing的一些什么类,Eclipse开发环境默认的JRE也没有包括它。应该没用。
tools.jar应用服务器用来编译JSP文件,应用服务器自己会加载,不需要自己设置。


关于path和classpath的含义:
1.path变量的含义就是系统在任何路径下都可以识别java,javac命令
2.classpath变量的含义是告诉jvm要使用或执行的class放在什么路径上,便于JVM加载class文件,.;表示当前路径,tools.jar和dt.jar为类库路径。如果不用Swing里面的东西,可以不加dt.jar。 tools.jar里面是最基本的工具类,比如javac,不加是无法做开发的。


1. rt.jar 默认就在 根classloader的加载路径里面 放在claspath是多此一举 不信你可以去掉classpath里面的rt.jar 然后用 java -verbose **X 的方式运行一个简单的类 就知道 JVM的系统根Loader的路径里面 不光rt.jar jre\lib下面的大部分jar 都在这个路径里
2. tools.jar 是系统用来编译一个类的时候用到的 也就是javac的时候用到 javac **.java 实际上就是运行 java -Calsspath=%JAVA_HOME%\lib\tools.jar xx.**.Main **.java javac就是对上面命令的封装 所以tools.jar 也不用加到classpath里面
3. dt.jar是关于运行环境的类库,主要是swing的包 你要用到swing时最好加上


dt.jar是关于运行环境的类库,主要是swing的包
tools.jar是关于一些工具的类库
rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的class文件

编译和运行需要的都是toos.jar里面的类 , 分别是
sun.tools.java.*;
sun.tools.javac.*;
ThinkCat 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zfq642773391 的回复:]
最新的JDK版本连基本的环境都不用配置
[/Quote]这回省事了
zfq642773391 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feichuangxinke 的回复:]
刚刚试了试 tools.jar如果删除了 javac无法运行 但是Java可以运行 就是说这个包 只是和javac运行有关 实际开发出的程序运行用不到这些包 还有我同样试了试了 jconsole和htmlconverter这两个包 如果删除了这两个包 那么jconsole和htmlconverter这个两个程序就不能运行 我们应该可以得出结论 这些包都是 JDK中的工具运行使用的包 不是开发用到的……
[/Quote]
恩 确实,前些天系统重装,新下了个JDK装上,刚要去配置,结果点了下Eclipse竟然能打开,这才知道新版本功能更强了
feichuangxinke 2010-04-20
  • 打赏
  • 举报
回复
刚刚试了试 tools.jar如果删除了 javac无法运行 但是Java可以运行 就是说这个包 只是和javac运行有关 实际开发出的程序运行用不到这些包 还有我同样试了试了 jconsole和htmlconverter这两个包 如果删除了这两个包 那么jconsole和htmlconverter这个两个程序就不能运行 我们应该可以得出结论 这些包都是 JDK中的工具运行使用的包 不是开发用到的包 我们正常开发时导入的包不在这几个包中 但是JDK1.6的JAVAC和jconsole,htmlconverter等这些工具已经自己可以找到这些包 不用在配置CLASSPATH了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧