JDK环境变量中dt.jar、tools.jar,rt.jar,source.jar等变量值的作用

转载 2016年08月31日 11:41:02
  • 学习Java的人都要经历配置JDK环境变量这一步,安装好JDK后,我们一般会做如下配置:


    1.打开我的电脑--属性--高级--环境变量

    2.新建环境变量JAVA_HOME 和CLASSPATH 
    变量名:JAVA_HOME 
    变量值:C:\Program Files\Java\jdk1.7.0
    变量名:CLASSPATH 
    变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

    3. 选择“环境变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中。
    变量名:Path 
    变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

    很多人都知道path变量的含义就是让系统在任何路径下都可以识别java、javac、javap等命令,而classpath变量的含义是告诉jvm要使用的class所存放的具体路径。但这种说法太笼统,下面我们来详细看下各变量值的含义。

    对于Path变量就不用多说了,因为该变量的bin目录下存放了各种包装好的工具,因此将此目录加入到Path变量中,便可以在命令行方式下让系统在任何路径下都可以识别这些工具所对应的命令。

    下面重点看下CLASSPATH变量中的各项变量值的含义:


    tools.jar:工具类库,它跟我们程序中用到的基础类库没有关系。我们注意到在Path中变量值bin目录下的各个exe工具的大小都很小,一般都在27KB左右,这是因为它们实际上仅仅相当于是一层代码的包装,这些工具的实现所要用到的类库都在tools.jar中,用压缩软件打开tools.jar,你会发现有很多文件是和bin目录下的exe工具相对性的,如下图:


    当然,如果tools.jar的功能只有这些的话,那么我们根本不用把它加入到CLASSPATH变量中,因为bin目录下的工具自己可以完成对这些类库的调用,因此tools.jar应该还有其他的功能。在里面还可以看到有Applet和RMI等相关的文件,因此tools.jar应该还是远程调用等必须的jar包。tools.jar的其他作用,我没有具体深入去研究,有朋友了解的话,可以在这篇文章下直接留言给我。

    dt.jar:运行环境类库,主要是Swing包,这一点通过用压缩软件打开dt.jar也可以看到。如果在开发时候没有用到Swing包,那么可以不用将dt.jar添加到CLASSPATH变量中。
    当前目录:CLASSPATH变量中的“.”便代表当前目录,即类加载器会从Java源代码所在的目录中去寻找Class文件。

    介绍完这三个环境变量后,你会发现,居然没有基本类库(指所有的Java.*开头的类)和扩展类库(如javax.*开头的类),也就是我们程序中import的那些东东所在的jar包。如果读过我前面的类加载机制一文,你应该会注意到,CLASSPATH中的这些类都是由Application ClassLoader或者我们自定义的类加载器来加载的,这里当然不能包括基础类库,如果包括基础类库的话,并用两个不同的自定义类加载器去加载该基础类,那它得到的该基础类就不是唯一的了,这样便不能保证Java类的安全性。

    实际上,这些基础类库都在%JAVA_HOME%\jre\lib目录下(如其中的rt.jar、resource.jar),类加载机制一文中也有提到,该目录下的类(在jar包中)会由Bootstrap ClassLoader自动加载,并通过亲委派模型保证了基础类库只会被Bootstrap ClassLoader加载,这也就保证了基础类的唯一性。

    另外,扩展类库在%JAVA_HOME%\jre\lib\ext目录下,该目录下的类是由Extension ClassLoader来加载的,有时候我们也要import这里面的类,但是并没有基础类库用的频繁。同样,Extension ClassLoader也会自动到该目录下找扩展类,而不需要我们指定。

       

     

Java-----JDK中tools.jar、dt.jar和rt.jar的作用

1、 tools.jar         位于{Java_Home}\lib下; 是系统用来编译一个类的时候用到的,即执行javac的时候用到         javac XXX.java实际上就是运...
  • hekewangzi
  • hekewangzi
  • 2015年03月20日 20:53
  • 1685

设置JDK环境变量时,lib中dt.jar、tools.jar和jre\lib中的rt.jar的作用

dt.jar是关于运行环境的类库,主要是swing的包   tools.jar是关于一些工具的类库   rt.jar包含了jdk的基础类库,也就是你在java   do...
  • u012110719
  • u012110719
  • 2015年05月01日 17:20
  • 1788

详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)

很多人都知道path变量的含义就是让系统在任何路径下都可以识别java、javac、javap等命令,而classpath变量的含义是告诉jvm要使用的class所存放的具体路径。但这种说法太笼统,下...
  • mmc_maodun
  • mmc_maodun
  • 2014年01月25日 06:05
  • 9894

JDK环境变量中dt.jar、tools.jar等变量值的作用

变量名:JAVA_HOME  变量值:C:\Program Files\Java\jdk1.7.0 用途:定义一个变量,供其他地方使用 变量名:Path  变量值:%JAVA_HOME%\bin;%...
  • itlwc
  • itlwc
  • 2016年06月13日 11:50
  • 3020

rt.jar ,dt.jar ,tool.jar都是 做什么用的

rt.jar是JAVA基础类库,基础数据类型等io.lang. dt.jar是关于运行环境的类库    swing界面工具, tools.jar是工具类库 编译工具javac rt.jar ...
  • stonehigher125
  • stonehigher125
  • 2016年05月03日 14:51
  • 1563

配置JAVA的环境变量及容易遇到的问题(丢失 dt.jar和tools.jar)

Java环境变量的配置网上有一大堆,我这里简单说下,主要是后面我遇到的问题。 下面开始配置环境变量,右击【我的电脑】---【属性】-----【高级系统设置】---【环境变量】 1.JAVA_HOM...
  • SeekN
  • SeekN
  • 2017年02月02日 15:32
  • 2223

安装java之后,找不到dt.jar和tools.jar

安装java之后,找不到dt.jar和tools.jar 的解决方法
  • yahuohuo
  • yahuohuo
  • 2017年10月03日 20:01
  • 390

JDK安装后 没有tools.jar 和dt.jar包的解决办法

出现这个问题的原因是在JDK安装时将JDK和JRE放在了同一目录下,导致了文件的覆盖,致使tools.jar和 dt.jar包被覆盖。...
  • b671900
  • b671900
  • 2014年07月17日 10:09
  • 3639

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

dt.jar和tools.jar位于:{Java_Home}/lib/下,而rt.jar位于:{Java_Home}/jre/lib/下,其中: rt.jar是JAVA基础类库,也就是你在jav...
  • murongjianke001
  • murongjianke001
  • 2014年03月31日 20:07
  • 175

jdk里面找不到tools.jar和dt.jar

前不久换了一个操作系统,好多软件和环境变量都没有了,但是还是得安装吧!好吧先安装jdk,咵咵的点击安装!然后在安装Android studio的时候怪事发生了!,jdk的lib里面的tools.jar...
  • baidu_23086307
  • baidu_23086307
  • 2016年07月15日 18:21
  • 1776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JDK环境变量中dt.jar、tools.jar,rt.jar,source.jar等变量值的作用
举报原因:
原因补充:

(最多只允许输入30个字)