前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JVM、JRE、JDK的作用与区别

JVM、JRE、JDK的作用与区别

作者头像
算法与编程之美
发布于 2022-05-23 07:13:49
发布于 2022-05-23 07:13:49
1.3K0
举报

一、引言

Java环境配置和项目启动中,这三者的配置是项目启动的基础保证,但这三者的作用和区别呢,本文将对JVM、JRE、JDK的作用与区别进行讲解。

注:如果只是运行Java程序,只需要JRE即可,JRE通常非常小,其中包含了JVM,如果要开发Java程序,就需要安装JDK。

二、方法

  1. JVM,JRE,JDK定义 JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的”虚拟计算机”。一般与OS操作系统打交道。 JRE(Java Runtime Environment),包含Java虚拟机、库函数、运行Java应用程序所必须的文件。 JDK(Java Development Kit),包含JRE,以及增加编译器调试器等用于程序开发的文件。
  2. 三者的区别与联系
    1. 联系 JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的JRE目录里面有两个文件夹bin和lib,在这里可以认为bin就是JVM,lib中则是JVM工作所需要的类库,而JVM和lib和起来就称为JRE。JVM+lib=JRE。总体来说,就是我们利用JDK(调用Java Api)开发了属于我们自己的Java程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成Java字节码,在JRE上运行这些java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
    2. 区别

JDK和JRE区别:在bin文件夹目录下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(运行程序的人)是不需要的。JDK还有jar.exe,javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。

JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。

通过对JVM,JRE,JDK的描述,我们就能看出三者之间的关系:

JDK: javac,jar,debugging,tools,javap

JRE:java,javaw,libraries,rt_jar

JVM:just in Time Compiler(JIT)

三、结语

搞懂三者的关系,能够让我们对java底层运行原理有一个良好的认知基础,以及加强我们对环境配置的了解。

稿件来源:深度学习与文旅应用实验室(DLETA)


作者:彭诚

主编:欧洋

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
JVM(Java Virtual Machine,即java虚拟机),java程序的运行环境(java二进制字节码的运行环境)。
寻求出路的程序媛
2024/07/29
1620
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
Java知识理解:为什么安装JDK以及JDK、JRE、JVM三者关系及相关理解
大家都知道电脑的操作系统是由汇编和C语言写出,因此操作系统无法直接识别其他语言。这时我们就需要添加一个(翻译)编译环境,将其他语言(翻译)编译为操作系统能够识别的语言。
鲲志说
2025/04/07
2180
Java知识理解:为什么安装JDK以及JDK、JRE、JVM三者关系及相关理解
什么是Java虚拟机以及JDK,JRE,JVM的区别和联系
The Java Virtual Machine (JVM) is an abstract computing machine. The JVM is a program that looks like a machine to the programs written to execute in it. This way, Java programs are written to the same set of interfaces and libraries. Each JVM implementation for a specific operating system, translates the Java programming instructions into instructions and commands that run on the local operating system. This way, Java programs achieve platform independence 翻译一下: Java虚拟机(JVM)是一种抽象计算机器。JVM是一个程序,它看起来像是一台机器,用于编写并在其中执行的程序。通过这种方式,Java程序被写入同一组接口和库中。针对特定操作系统的每个JVM实现都将Java编程指令转换为在本地操作系统上运行的指令和命令。这样,Java程序就实现了平台独立性。
向着百万年薪努力的小赵
2022/12/02
6870
什么是Java虚拟机以及JDK,JRE,JVM的区别和联系
【JavaSE专栏2】JDK、JRE和JVM
JDK 是提供给 Java 开发人员使用的,其中包含了 Java 的开发工具,也包括了 JRE,如编译工具(javac.exe),打包工具 (jar.exe)等。
Designer 小郑
2023/08/01
2320
【JavaSE专栏2】JDK、JRE和JVM
谈一谈|JDK、JRE和JVM的解释以及联系和区别
前要:JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
算法与编程之美
2020/07/16
9210
Java跨平台你真的理解对了吗?
小面朋友最近去面试,直接被一个基础问题pass了。面试管的问题是:你怎么看待Java是跨平台的说法?
灬沙师弟
2023/03/07
3740
Java跨平台你真的理解对了吗?
java从入门到精通一(java开发入门)
java的相关环境的配置 开篇语:大一下学期学习了java的基础案例教程,当然疫情期间是在家里上的学校网课,带我java课程的老师讲的特别好,虽然是以视频的形式来讲课,但老师讲的同样很精彩,很详细,因此啊,很感谢老师给我带来如此优质的课程。 学过的东西要总结是很好的习惯,总结,帮助我们更好的梳理知识,将我们的基础打扎实。从本篇开始,我会将我学过的java相关的知识做一个汇总。以便知识的分享,也方便以后自己的查阅。 java开发入门: 1.1:java来源: java是一门高级计算机语言,他是在1995年由SUN公司推出来的,不过后来由Orzcle公司巨资收购。 我们知道java是很受市场欢迎的,当时SUN公司将java划分为3个技术平台:javaSE,javaEE,javaME。javaSE是一个标准版,是为开发桌面应用和商务应用提供的解决方案;javaEE是为企业开发的;javaME呢,他是为开发电子产品和嵌入式设备提供的解决方案。 1.2 :java语言的特点 1:简单性,是的,相比c语言和c++,java还是比较简单的,但是相比python强大的库操作,其实java也并不简单。 2:面向对象性,java是一门面向对象性的编程性语言,当然这里讲可能比较抽象,但是当我们学到面向对象那里,就会很好理解了,因为我们时常new 一个对象,所以学java的单身狗们时常new个对象来安慰单身的自己,这也许就是程序猿的快乐吧,哈哈。 3:安全性,java语言它不支持指针,对内存的访问都是要用过对对象的实例变量来实现,所以它会更安全。我们学过c语言的数据结构就知道,指针可以很方便的操纵内存,而且,指针操纵内存的溢出攻击也是非常有名的。 4:跨平台性,这与java的虚拟机有关,java的程序是由虚拟机来执行的,并不是我们的操作系统,不同的操作系统中只需安装不同版本的虚拟机即可,可以通过这样来实现跨平台。奥利给。 我们来看图:
兰舟千帆
2022/07/16
8210
java从入门到精通一(java开发入门)
JVM,JRE,JDK之间的区别和联系
Java Api是Java的应用程序接口,里面有很多写好的Java Class,包含一些重要的语法结构以及基本图形,网络和文件IO,我们可以直接调用。
开源日记
2020/11/25
3.8K0
弄懂 JRE、JDK、JVM 之间的区别与联系
其实很多 Java 程序员在写了很多代码后,你问他 jre 和 jdk 之间有什么关系,jvm 又是什么东西,很多人不知所云。本篇不会讲述 jvm 底层是如何与不同的系统进行交互的,而主要理清楚三者之间的区别,搞清楚我们写的 xxx.java 文件是被谁编译,又被谁执行,为什么能够跨平台运行。
Single
2018/03/14
1.4K0
弄懂 JRE、JDK、JVM 之间的区别与联系
【Java SE语法篇】1.初始Java
不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。
爱敲代码的小杨.
2024/05/07
1000
【Java SE语法篇】1.初始Java
Java虚拟机编译原理二:Java的类加载过程
在开始探寻类加载过程之前,有必要阐述一下这三者之间的关系,三者属于包含关系
浩说编程
2021/08/17
3440
Java虚拟机编译原理二:Java的类加载过程
Java中JDK和JRE的区别是什么?它们的作用分别是什么?「建议收藏」
JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar。
全栈程序员站长
2022/09/20
5.1K1
Java中JDK和JRE的区别是什么?它们的作用分别是什么?「建议收藏」
Java基础--JDK的安装和配置弄懂 JRE、JDK、JVM 之间的区别与联系
  Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论允许程序员以优雅的思维方式(思想很重要)进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、动态性特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
mukekeheart
2019/09/29
1.9K0
Java基础--JDK的安装和配置弄懂 JRE、JDK、JVM 之间的区别与联系
【JAVA-Day02】JDK、JRE和JVM: Java开发与运行的三位好朋友
在Java世界中,JDK、JRE和JVM是三个你需要熟悉的重要角色。它们分别扮演着开发、运行和执行Java程序的不同角色。本文将深入探讨它们之间的关系和作用。
默 语
2024/11/20
840
【JAVA-Day02】JDK、JRE和JVM: Java开发与运行的三位好朋友
JDK、JRE和JVM三者之间关系
很多程序员已经写了很长一段时间java了,依然不明白JDK,JRE,JVM的区别。今天个人总结一下它们三者的关系、区别。
用户7886150
2020/12/02
5920
Java简介 | Jdk、Jre、Jvm区别
Jre全称是Java Runtime Environment,意为Java运行环境。
Defu Li
2019/12/19
8620
面试官:JDK、JRE、JVM 三者什么关系?
这个题目在面试题中基本没怎么出现,但在笔试题中倒是经常见到。所以还是有必要拉出来溜溜~
田维常
2020/09/22
2.2K0
面试官:JDK、JRE、JVM 三者什么关系?
Jre和Jdk的区别?
Jre和Jdk的区别 JRE:(Java Runtime Environment),java运行环境。包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。 JDK:(Java Development Kit Java)开发工具包。JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具:编译工具(java
Java学习
2018/04/18
1.1K0
什么是JVM?什么是JRE?什么是JDK?三者的区别和联系?
总的来说,JDK 是用于 java 程序的开发,而 jre 则是只能运行 class 而没有编译的功能。
bboy枫亭
2020/09/22
1.5K0
什么是JVM?什么是JRE?什么是JDK?三者的区别和联系?
jdk与jre的区别
JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
张哥编程
2024/12/13
1130
推荐阅读
相关推荐
JVM常见面试题(一):JVM是什么、JVM由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档