转载自http://gybmike.iteye.com/blog/1622518

答: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.*;