浅谈JVM、JRE、JDK的作用和联系

浅谈JVM、JRE、JDK的作用和联系

JVM(Java Virtual Machine)

JVM(Java Virtual Machine),Java虚拟机。所有的.java程序都不能被机器的操作系统直接识别并执行,而是先被编译为.class的字节码文件,但此时字节码文件仍然不能和机器的操作系统产生交互,而是经过虚拟机将字节码文件解释成本地操作系统可执行的机器指令,这时程序才会被执行。 所以JVM是Java实现跨平台(Windows、macOS、Linux)最核心的部分。图为:Java程序的执行过程
在这里插入图片描述

JRE(Java Runtime Environment)

JRE(Java Runtime Environment),Java运行环境。JRE中包含了JVM和JVM解释.class类文件时需要调用的类库lib(runtime class libraries)。在JDK的安装目录里可以找jre目录,jre里有两个文件夹bin和lib,可以认为bin里的就是jvm,lib里的则是jvm工作所需要的核心类库。所以JRE是运行Java程序不可缺少的运行环境。图为:JDK中JRE的安装目录(列图以Java1.8为例,下同)
在这里插入图片描述
注意:JDK安装完成后,因已包含JRE,此时用户可根据自身实际应用场景选择是否安装JDK外部JRE。图为:JDK外部JRE安装目录
在这里插入图片描述

JDK(Java Development Kit)

JDK(Java Development Kit),Java开发工具包。JDK提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行环境JRE,以及常用的Java基础类库等,是整个JAVA的核心。图为:JDK安装目录
在这里插入图片描述
注:JDK安装目录下文件夹说明
(1)bin:该路径下存放了JDK的各种工具命令,常用的 javac、 java等命令就存放在该路径下。(注意:java命令后的参数是Java类名。)
(2)db:该路径是安装 Java 数据库的路径。
(3)include:—些平台特定的头文件。
(4)jre:运行 Java程序所必须的 JRE环境。
(5)lib:存放的是JDK工具命令的实际执行程序。
(6)javafx-src.zip:该压缩文件里存放的是JavaFX所有核心类库的源代码。
(7)src.zip:该压缩文件存放的是Java所有核心类库的源代码。

JVM、JRE、JDK三者之间的联系

简单来说,JDK是用于Java程序的开发,包含了Java的开发工具和JRE,其中开发工具包括编译工具(javac.exe)打包工具(jar.exe)等。JRE包含JVM和核心类库,只能解释执行.class字节码文件,而没有编译的功能。 三者为嵌套关系,即JDK > JRE > JVM。如图所示:
在这里插入图片描述

两个jre目录和三个lib目录

  • 两个jre目录:
    安装JDK后,Java目录下有jdk和jre两个文件夹,但jdk下还有一个jre文件夹。两个jre均可用:当用户只需要执行 java 的程序时,那么Java目录下的jre就可以了。当用户是开发者,则需要Java开发环境,系统就会优先调用jdk下的jre 。
  • 三个lib目录:
    • JDK下的lib,包括Java开发环境的jar包,是给JDK用的。例如JDK下有一些工具,可能要用该目录中的文件,如编译器等。
    • JDK下的JRE下的lib,是开发环境中运行时需要的jar包。
    • JRE下的lib,是运行java程序的jar包,是JVM运行时候用的。包括所有的标准类库和扩展类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值