JDK环境变量中dt.jar、tools.jar等变量值的作用和原理
来源:互联网 发布:网络机器人大战 编辑:程序博客网 时间:2024/05/22 04:39
经常有初学者问JAVA环境配置原理的一些问题,在这里总结一下:
1.打开我的电脑--属性--高级--环境变量
2.新建环境变量JAVA_HOME 和CLASSPATH
变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.7.0
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\;
备注:并不需要设置成 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;这样形式
3. 选择“环境变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中。
变量名:Path
变量值:%JAVA_HOME%\bin;
备注:并不需要设置 %JAVA_HOME%\jer\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包。
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也会自动到该目录下找扩展类,而不需要我们指定。
- JDK环境变量中dt.jar、tools.jar等变量值的作用和原理
- JDK环境变量中dt.jar、tools.jar,rt.jar,source.jar等变量值的作用
- JDK环境变量中dt.jar、tools.jar等变量值的作用
- JDK环境变量中dt.jar、tools.jar等变量值的作用
- JDK环境变量中dt.jar、tools.jar等变量值的作用
- 详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)
- 详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)
- 详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)
- 详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)
- 详细说明JDK环境变量中dt.jar、tools.jar等变量值的作用(结合ClassLoader)
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- JDK中rt.jar、tools.jar和dt.jar作用
- Android Studio导入Library
- HDU5873-Football Games
- iOS10适配
- 给自己一段自我堕落的时间,现在要唤醒自己的洪荒之力!
- 后缀表达式的计算
- JDK环境变量中dt.jar、tools.jar等变量值的作用和原理
- ubuntu apt-get 指令
- 《机器学习实战》学习(二)——决策树(DT)
- Fibonacci第n项
- 手机版产品列表页图片高度不整齐
- 外键(学生表是从表,班级表示主表)
- Objective-C如何使自定义对象类作为NSDictionary的key
- LeetCode 66. Plus One
- 嵌入式开发第42天(ARM的体系结构)