[转帖]JDK中rt.jar、tools.jar和dt.jar作用

JDK中rt.jar、tools.jar和dt.jar作用

第一篇: 
JRE下的rt.jar: 
这个文件是极为重要的一个文件,rt是runtime的缩写,即运行时的意思。是java程序在运行时必不可少的文件。 
里面包含了java程序员常用的包,如java.lang,java.util,java.io,java.net,java.applet等

  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里面

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

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

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

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

编译和运行需要的都是toos.jar里面的类 , 分别是 
sun.tools.java.*; 
sun.tools.javac.*;

第二篇: 
dt.jar和tools.jar位于:{Java_Home}/lib/下,而rt.jar位于:{Java_Home}/jre/lib/下,其中: 
rt.jar是JAVA基础类库,dt.jar是关于运行环境的类库,tools.jar是工具类库

在Classpath设置这几个变量,是为了方便在程序中 import;Web系统都用到tool.jar。

  1. rt.jar 
    rt.jar 默认就在Root Classloader的加载路径里面的,而在Claspath配置该变量是不需要的;同时jre/lib目录下的 
    其他jar:jce.jar、jsse.jar、charsets.jar、resources.jar都在Root Classloader中
  2. tools.jar 
    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 
    dt.jar是关于运行环境的类库,主要是swing的包 在用到swing时最好加上。

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/12613724.html
今日推荐