JDK version
Long-Term Support Releases
- Supported for years
- For example, Java 8, 11, 17
Feature Releases
- Supported for six months
- For example, Java 9, 10, 12, 13, 14, 15, 16
JDK vs OpenJDK
Java安装目录
本地成功安装JDK之后目录如下:
Java环境变量设置
- JAVA_HOME: C:\Program Files\Java\jdk1.8.0_191;
- CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
- Path: %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin
tools.jar包含Java各种高级功能的实现,是java必不可少的。
path\bin里都是java的可执行的编译器及其工具,如java, javadoc等。
javac依赖于JDK环境变量的设置。
JDK
Java Development Kit, Java开发工具包。针对开发者,主要包含jre, jvm, jdk源码包,以及bin文件夹下用于开发、编译运行的指令器集。 JRE
Java Runtime Environment, Java运行时环境。针对java用户,拥有可运行的.class文件包(jar或者war)的用户。主要包含了jvm和java运行时基本类库(rt.jar)。 rt.jar:java源码编译成的jar包(解压出来看一下)。用Eclipse开发时,Ctrl点击无法跳转到源文件,需要把rt.jar对应的源码包加进来,源码包正是jdk文件夹下的src.zip。 JVM
Java Virtual Machine, Java 虚拟机,是java实现跨平台的最核心的部分。所有的java程序会首先被编译为.class的字节码文件,该文件可以在虚拟机上执行。
JDK与JRE
JDK内部包含了一套JRE,与外部的JRE是一致的(外部JRE在安装JDK时可选)。JDK内部的JRE有什么用?因为java,javac等命令最终是java实现的,所以执行javac等命令需要JRE。
JDK目录解析
bin: 存度放编译器和工具,最主要的是编译器(javac.exe);
include: java与JVM交互作用的头文件
lib: 类库
jre: java运行环境
src.zip: 类库源文件
JRE与JVM
JVM不能单独搞定class的执行,解释class时JVM需要调用解释器所需要的类库lib。 JVM + Lib = JRE
jvm.dll启动之后,调用动态链接库(.dll文件)(必须位于jvm.dll所在目录的父级目录)。
JDK, JRE与JVM的关系