JDK、JRE、JVM分析

JDK(Java Development Kit)

Java开发工具,是由开发者使用,而在只运行java程序的机器上不需要使用。

JDK中包含JRE、Java基础的类库和java工具(javac/java/jdb等)。

以下是JDK1.8.0_281的文件目录结构

JDK文件目录截图

其中一些主要文件夹:

  • 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文件中的主要文件目录:

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跨平台,可以在多种操作系统上运行。

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...