首页 > 其他分享 >JDK,JRE,JVM三者的区别与联系

JDK,JRE,JVM三者的区别与联系

时间:2024-07-25 16:08:47浏览次数:7  
标签:JRE java JDK 程序 JVM Java

JDK,JRE,JVM


目录

JDK(Java Development Kit)

​ JDK,全称Java Development Kit,即Java开发工具包。顾名思义,JDK是用于Java开发的一套工具包,里面包含了Java的编译器javac、Java程序打包工具jar、Java程序运行环境JRE、文档生成工具javadoc以及很多用于开发的工具,如调试工具jdb等。JDK是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。

​ JDK是java开发工具包,在其安装目录下面有六个文件夹、一些描述文件、一个src压缩文件。bin、include、lib、 jre这四个文件夹起作用,demo、sample是一些例子。可以看出来JDK包含JRE,而JRE包含JVM。

  • bin:最主要的是编译器(javac.exe)

  • include:java和JVM交互用的头文件

  • lib:类库

  • jre:java运行环境(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)

    总的来说JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。 其中的开发工具包括编译工具(javac.exe)打包工具(jar.exe)等。

JRE(Java Runtime Environment)

​ JRE,全称Java Runtime Environment,即Java运行环境。JRE是运行Java程序所需的环境,包括JVM以及Java类库等。JRE是Java程序运行的实施场所,同时也提供了运行Java程序所必需的库文件。

光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。所以,在你写完java程序编译成.class之后,你可以把这个.class文件和jre一起打包发给朋友,这样你的朋友就可以运行你写程序了。

​ 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等, 如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JVM(JVM Java Virtual Machine)

​ JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
​ 可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。让具体平台如window运行这些Java程序。

JDK、JRE和JVM之间的关系

联系:JDK > JRE > JVM。JDK是最大的,它包含JRE,而JRE又包含JVM。

JDK是为了满足Java开发人员的需要而创建的,其中包含开发工具和JRE。因此,如果你需要编写Java程序,那么你需要JDK。JRE是为了运行那些已经编写好的Java程序而创建的,JRE中包含有JVM和Java类库,但是并不包含其他开发工具,因此,如果你只需要运行Java程序,那么你只需要JRE就可以了JVM就像一个桥梁,它负责将我们编写的Java代码(人类可以理解的)转化为机器可以运行的机器代码。

JDK、JRE和JVM的区别

对于初学者来说,JDK、JRE和JVM这三者之间的区别可能会让人感到困惑。简单来说:

JDK是开发工具,它让程序员编写Java程序。
JRE是运行环境,它让编写好的Java程序可以被运行。
JVM则是JRE的一部分,位于程序执行的最前沿,将字节码转化为机器代码。
Java技术的一大优势就在于它的平台无关性,开发者可以编写一次代码,然后在任何运行着JVM的机器上运行这段代码。这个特性离不开JDK、JRE和JVM的作用以及三者之间的关系。理解这三者,就等于理解了Java平台的基础运行机制。

总的来说,对JDK、JRE和JVM深入了解是每一个Java开发者的基本功。只有理解了这些基础知识,我们才能更好地理解Java是如何运行的,并更好地进行编程工作。

标签:JRE,java,JDK,程序,JVM,Java
From: https://www.cnblogs.com/BingBing-8888/p/18323403

相关文章

  • JVM个人详细笔记总结
    jvm概念和运行过程jvm是java的虚拟机位于操作系统层之上,应用程序层之下,所以才具有跨平台能力,JAVA文件需要通过JVM转译成字节码或通过javac命令编译为.class文件后才能运行JAVA程序,运行时必须要有JRE(运行环境),JDK是开发包,其中包含有JRE。jvm组成JVM结构主要分为三个部分:类......
  • JVM 内存结构、垃圾回收机制与并发容器
    目录一、JVM内存结构 1.程序计数器(ProgramCounterRegister): 2.Java虚拟机栈(JVMStack): 3.本地方法栈(NativeMethodStack): 4.堆(Heap): 5.方法区(MethodArea):二、垃圾回收机制 1.标记-清除算法: 2.复制算法: 3.标记-整理算法: 4.分代收集:三、并发容器......
  • 一文弄懂JVM类加载器与双亲委派机制
    类的加载器完成类的加载环节中的装载阶段的工作(通过一个类的全限定名来获取该类的二进制字节流,且这个动作在虚拟机**外部实现**,即开发者可以决定如何去获取所需的类),且**不会影响后续的链接和初始化阶段,但类的加载器的存在使得类不会卸载**。类的加载器的意义:加载器的意义......
  • Linux下jdk安装及环境变量配置
    一、解压安装jdk 将下载好的压缩文件复制到/usr/local/src目录下进入/usr/local/src并解压:cd/usr/local/src&&tarxvf[压缩文件名称]二、配置环境变量(推荐使用第三种或第四种)配置之前需要根据实际情况在命令行设置JAVA_HOME:例如(/usr/local/src/jdk1.8.0_......
  • Failed to create JVM.JVM Path:D:\IntelliJ IDEA 2024.1.4\jbr Error launching I
     IDEA修改启动参数掉大坑!情况说明:在Help>EditCustom VMOptions修改IDEA的VM产生之后无法打开(重启/重装多次依然无法打开),修改C盘的idea64.exe.vmoptions和安装目录的idea64.exe.vmoptions依然无法启动!,后面把IDEA安装目录的jar文件夹删了,又重装JDK。由于我有多个JDK环境,......
  • 深入理解Java虚拟机:JVM高级特性与最佳实践-第三章-垃圾收集器与内存分配策略
    在java内存运行时区域中的各个部分中,程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑如何回收的问题,当方法结束或者线程结束时,内存自然就跟随着回收了。但是Java堆和方法区这两个区域具有......
  • 下载和删除JDK8
    1下载jdk8打开此电脑找到属性知道自己的电脑的属性2搜素jdk8官网,现在我们知道自己的电脑属性。下载适合自己的电脑的版本3下载版本前你必须先服从条约安装安装的时候注意地址重要性后面我们还是会用到这个地址的1在属性主找的高级系统设置---环境变量---新......
  • SpringBoot升级到3.3.2版本,JDK升级到17,引入Mybatis-plus后启动报错:Property 'sqlSessi
    【问题描述】2024-07-23T15:16:07.174+08:00WARN2604---[questionnaire][main]ConfigServletWebServerApplicationContext:Exceptionencounteredduringcontextinitialization-cancellingrefreshattempt:org.springframework.beans.factory.UnsatisfiedDependen......
  • Arthas调试JVM参数的使用
    一、对于JVM介绍1.JVM区域JVM区域总体分两类,heap区和非heap区。heap区又分:EdenSpace(伊甸园)、SurvivorSpace(幸存者区)、TenuredGen(老年代-养老区)。非heap区又分:CodeCache(代码缓存区)、PermGen(永久代)、JvmStack(java虚拟机栈)、LocalMethodStatck(本地方法栈)。2.Ho......
  • jdk下载安装与配置
    jdk下载安装与配置1.浏览器搜索jdk8,点击oracle官网2.点击JavaSEDevelopmentKit8u202下的Windowsx64,选择自己电脑的 3.双击或者右键点击jdk-8u202-windows-x64.exe,以管理员权限打开。  4.点击【下一步】。 5.点击【下一步】。 6.正在安装中。 ......