jdk本身就包含了运行环境jre,
老版本JDK安装包仍然带了jre,需要一起安装
这个版本不同老版本,
安装包不含jre部分,
故环境变量也不用配置jre
类和资源文件之前存储在lib/rt.jar
,lib/tools.jar
,lib/dt.jar
和其他各种内部JAR文件都存储在一个更有效的格式在实现特定的文件lib
目录。
删除rt.jar
和类似文件会导致以下方面的问题:
tools.jar包也不存在,不用配置
JAVA_HOME
C:\Program Files\Java\jdk-11.0.6
CLASSPATH
.;%JAVA_HOME%\bin
.代表当前路径
新打开命令行:
运行命令 java -version
运行命令 javac
都能找到,就明配置环境变量正确
转:https://www.iteye.com/blog/uule-2149115
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里面
3. 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.*;
原文:https://www.cnblogs.com/hjbf/p/12712932.html