JDK(Java Development Kit)
Java开发工具,是由开发者使用,而在只运行java程序的机器上不需要使用。
JDK中包含JRE、Java基础的类库和java工具(javac/java/jdb等)。
以下是JDK1.8.0_281的文件目录结构
其中一些主要文件夹:
-
bin: java开发工具可执行文件目录,用于编译,运行以及调试Java程序或监控JVM的运行。其中javac.exe可以将.java文件编译成为.class文件
-
include: c的头文件,用与支持 native-code 库使用 jvm Debugger(虚拟机调试器)接口。简单来说就是java与jvm交互用的头文件
-
jre: java运行环境,用于运行java编译后的.class文件
-
legal: 相关协议的法律文件,Markdown文件
-
lib: 开发工具所使用的类库,即jdk中的bin目录中的工具所使用的类库。主要包括tools.jar和dt.jar
-
src.zip: Java的所有核心类库的源代码。
JRE(Java Runtime Environment)
Java运行环境,是一台机器运行java程序所不可缺少的运行环境,即用户所需要安装的部分。
JRE中包含JVM、Java的核心类库。
以下是JRE文件中的主要文件目录:
-
bin: jre 执行文件及 DLL 库,可执行文件与 jdk\bin 相同,不必将该目录放在 PATH 环境变量中。
-
lib: Java程序运行时环境使用的代码库、属性设置和资源文件,例如rt.jar(应与jdk下的lib有所区分)
JVM(Java Virtual Machine)
Java虚拟机,是java实现跨平台的关键部分,.class文件在虚拟机上运行,所以java编译后的代码并不直接与操作系统交互,而是被java虚拟机解释成为相关指令,再解释class的时候就需要JVM调用解释所需要的类库lib。JVM对于不同的操作系统有着适配的解释器,这样就使得java跨平台,可以在多种操作系统上运行。