精华内容
下载资源
问答
  • jvm、jre、jdk之间的关系
    2022-05-31 11:35:00
    1. JVM(Java Virtual MAchine) Java虚拟机

    JVM 就是我们常说的 java 虚拟机,它是整个 java 实现跨平台的最核心的部分,可以理解为是一个虚拟出来的计算机,具备着计算机的基本运算方式,它主要负责将 java 程序生成的字节码文件解释成具体系统平台上的机器指令。让具体平台如 window 运行这些 Java 程序。

    1. JRE(Java Runtime Environment) Java运行环境

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

    1. JDK(Java Development Kit) Java开发工具包

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

    在这里插入图片描述
    由图中可以看出以下几点:

    • JDK = JRE + 多种 Java 开发工具
    • JRE = JVM + 各种类库
    • 这三者的关系是一层层的嵌套关系。JDK > JRE > JVM
    更多相关内容
  • JDKJREJVM三者之间关系

    千次阅读 2021-09-07 19:34:00
    JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及...

    基本介绍: 

    JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
    Java Runtime Environment(JRE)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
    JVM是Java Virtual Machine(Java虚拟机)的缩写,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

    1、JDK
    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)等
     

    2、JRE
    JRE是指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即可。

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

    简单而言:使用JDK开发完成的java程序,交给JRE去运行。  

    三者之间关系 
    JDK 包含JRE,JRE包含JVM。


    JVM:将字节码文件转成具体系统平台的机器指令。 
    JRE:JVM+Java语言的核心类库。 
    JDK:JRE+Java的开发工具。 

     
    我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

    展开全文
  • 简述java中JDKJREJVM之间关系

    千次阅读 多人点赞 2022-04-12 14:36:44
    以下简述一下本人对JDKJREJVM之间关系: 概念 JDK(Java Development Kit)简单理解就是Java开发工具包,是java的核心所在;JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也...

    初学java平台,很容易搞不清楚java中的一些概念。以下简述一下本人对JDK、JRE和JVM的之间的关系:

    概念

    JDK(Java Development Kit)简单理解就是Java开发工具包,是java的核心所在;JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也就是常常听到Java虚拟机。JDK是面向开发者的,JRE是面向使用JAVA程序的用户,JVM是java实现跨平台和系统的媒介所在。

    一、JDK(Java Development Kit)

    JDK(Java Development Kit),即Java开发工具包,是一个编写Java应用程序的开发环境,是java的核心所在。

    JDK是整个Java的核心,包括了JRE(Java运行环境),同时在jdk文件夹bin(通常我们配置jdk的环境变量的根目录)目录中包含了一些Java开发工具(例如:jconsole、javac、java、javadoc、native2ascii、jar等)。JDK=JRE+Java开发工具(编译器、反编译器、调试器等)。下面我简单介绍一下目前最常用的jdk1.8版本的目录内容。

    jdk1.8目录包含:

    bin:一堆exe文件,可执行的开发工具,最主要的是javac, 例如:jconsole、javac、java、javadoc、native2ascii、jar。
    jre:java运行环境,包括JVM+Java基础和核心类库 。
    lib:本地资源库,包含dt.jar+tools.jar的常用类库,开发依赖包。
    include:java和JVM交互用的头文件。

    二、JRE(Java Runtime Environment)

    JRE(Java Runtime Environment),即Java运行环境,支持Java程序运行的标准环境,包含JVM标准实现及Java核心类库。 JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。JRE=JVM+Java基础和核心类库。

    jre1.8目录包含:

    bin:有java.exe但没有javac.exe,无法编译Java程序,但可以运行Java程序,可以把这个bin目录理解成JVM
    lib:Java基础和核心类库,如rt.jar,也包含JVM运行时需要的类库。

    三、JVM(Java Virtual Machine)

    JVM(Java Virtual Machine),即Java虚拟机,运行在操作系统之上,存在于内存中,与内存打交道,与硬件没有直接交互,是Java语言实现跨平台的核心。

    JVM是一种抽象,虚拟出来的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据,内存和寄存器,指令集,寄存器,类文件的格式,栈,垃圾回收堆,存储区等。

    Java虚拟机,是JRE的一部分。它是整个java实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。所有平台的上的JVM向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。
    JVM主要负责运行Java编译器编译后的字节码文件(*.class文件)。这些字节码只面向JVM,不同平台的JVM都是不同的,但它们都提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。把字节码解释成具体平台上的机器码执行。JVM自己无法执行,必须要联合JRE中的Java基础&核心类库才能使用。

    关系

    上面只是一个概念上简单的区别,下面我用截图的方式来简述三者的关系。

    一、层次图

    通过上图可以看出JDK包含JRE,而JRE包含JVM。

    首先我们了解一下字节码:

    1. 什么是字节码?采用字节码的最大好处是什么
    字节码:Java源代码经过虚拟机编译器编译后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。
    2. 采用字节码的好处:
    Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。
    3. java中的编译器和解释器:
    Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在Java中,这种供虚拟机理解的代码叫做字节码(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行,这就是上面提到的Java的特点的编译与解释并存的解释。

    我们都知道一个java程序的执行过程如下:

    * 编译阶段:

    –javac java源文件的路径

    * 运行阶段:

    –打开DOS命令窗口

    –输入: java A

    –java.exe命令会启动java虚拟机(JVM), JVM会启动类加载器Classl oader

    –ClassLoader会去硬盘.上搜索A.class文件,找到该文件会将该文件装载到JVM当 中

    –JVM将A.class字节码文件解释成二进制1010101001这样的数据

    –然后操作系统执行二进制和底层硬件平台进行交互

    二、JDK****包含JRE

    JDK包含JRE,是因为Java本身编译的源代码,也需要能够被编译执行,而要被编译就必须有JRE。通过上图可以看出JDK比JRE多了java编译与反编译语言(Java Language)、调试器和java工具包(Tools&Tool APIs)。另外从下图来看,JDK包里除了JRE这个包后还有bin文件里面都是java的可执行的编译器及其工具,如java,javadoc等;此外还有lib包(java自带的工具包)这刚好对应如上层次图中的编译语言(Java Language)和java工具包(Tools&Tool APIs)。

    另外,JDK安装时一般会安装独立于JDK包之外的JRE,这个包和JDK自带的JRE内容上基本一致,两套JRE运行的时候究竟运行哪一个呢,这个时候JDK中java.exe先从自身目录中找,然后父级目录中找,如果都没有就去注册表中找。事实上JDK内部的JRE一般是内嵌JRE,当我们新建本地的工程会使用它,而当我们导入外部资源的工程时,同时相应的导入外部资源(比如jar包、war包等)就会选择外部的JRE使用。

    三、JRE****包含JVM

    JRE包含JVM的原因是JVM就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,class文件并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行(计算机本身只能编译字节码文件)。

    JVM又不能单独执行class文件,解释class的时候JVM需要调用解释所需要的类库lib。因此如上图所示Java把JVM放在了JRE里面,初次外JRE还包括java SE API。

    总结

    JDK包含JRE,而JRE包含JVM;JDK是用于java程序的开发,而JRE则是只能运行class而没有编译的功能,所编译的class文件都必须通过JVM去执行字节码文件。java的特点之一是跨平台,它不是JAVA跨平台,而是JVM跨平台,在不同的操作系统上有不同的jvm虚拟机,因jvm,java有着**“一处执行,处处执行**”的特点。

    另外,对于初学java基础薄弱的同学,推荐菜鸟教程https://www.runoob.com/java进行学习。

    展开全文
  • JDKJREJVM之间关系

    千次阅读 2022-06-05 11:43:57
    java学习之初,都会学习到JDKJREJVM之间的区别与联系。本文是作者在学习这部分内容过程中的一些个人的总结归纳。

    前言

    java学习之初,都会学习到JDK、JRE和JVM之间的区别与联系。本文是作者在学习这部分内容过程中一些个人的总结归纳。

    一、概念简介

    (1)JDK(Java Development Kit):是java的核心,运行java程序必须要有的东西,里面包括java运行环境JRE、java工具和java基础类库(java开发者使用的功能性类库)。
    (2)JRE(Java Runtime Environment):运行java程序所必须的环境,里面包括java虚拟机JVM的实现和java核心类库(JVM工作所需的类库)。
    (3)JVM(Java Virtual Machine):是java跨平台特性的核心,通过JVM屏蔽了底层系统(windows、linux、Max等等)的差异,实现一次编译,到处运行。JVM可以理解为在操作系统上模拟安装了一个CPU来处理java程序相关的东西,它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。

    二、三者之间的包含关系

    在这里插入图片描述

    三、java开发过程中,三者之间的流程

    在这里插入图片描述

    展开全文
  • 3.JDKJREJVM的区别 3.1 Java为什么能跨平台,实现一次编写,多处运行? 1.编译器、调试器 JAVA编译器(javac.exe) JAVA编译器的作用是将(.java文件)编译成字节码文件,是最基本的开发工具。编译时首先读入java...
  • JDKJREJVM 之间关系
  • JVM是不能独立安装的,JREJDK都是可以独立安装的,有单独的JDK安装包和单独JRE安装包,但是没有单独的JVM安装包。 安装JDK的时候:JRE就自动安装了,同时JRE内部的JVM也就自动安装了 安装JRE的时候:JVM也就自动...
  • JDK,JRE,JVM三者之间关系

    千次阅读 2020-07-09 13:35:25
    JDK,JRE,JVM三者之间关系,以及JDK,JRE,JVM包含的主要结构有哪些? JDK=:JAVADevelopment Kit(JAVA开发工具包) JRE: JAVARuntime Environment(JAVA运行环境) JVM:JAVA Virtual Machine(JAVA虚拟机) 三者的...
  • JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的...
  • 2. JVMJREJDK之间关系

    千次阅读 2019-03-27 21:36:46
    2. JVMJREJDK之间关系 JDK(Java Development Kit)简单理解就是Java开发工具包 JDK是面向开发者的 JRE(Java Runtime Enviroment)是Java的运行环境, JRE是面向使用JAVA程序的用户 JVM( java virtual machine)...
  • Java入门--jdkjrejvm三者关系
  • 关系:JDK包含JRE,而JRE包含JVMJDK用于java程序的开发,JRE只能运行class而没有编译的功能。 JRE 是运行 Java 程序必不可少的,编写好的Java程序必须要JRE才能运行。如果想要运行一个开发好的Java程序,计算机中...
  • 图文并茂聊一聊,JVMJREJDK关系是什么?
  • 名词解释 1.JDK(Java Development Kit) JDK(Java开发工具包)可谓是整个Java程序开发的核心内容,JDK主要包含...JRE(Java运行环境)主要是让操作系统运行Java应用程序,其内部包含了一个JVM(java虚拟机),也就是说JRE只负
  • JVMJDKJRE的区别

    2022-07-07 17:59:55
    JVMJDKJRE的区别
  • JVMJREJDK之间的联系与区别

    千次阅读 2022-04-19 16:13:24
    JVMJREJDK之间的联系与区别 JVM (Java Virtual Machine) JVM(Java虚拟机)是一个可执行Java字节码的虚拟机进程,用于解析编译后的字节码文件。 JVM屏蔽了与操作系统平台相关的信息,可以把字节码解释成具体...
  • JDKJREJVM三者之间关系

    千次阅读 2020-02-06 21:18:16
    JDKJREJVM三者之间关系 1. JDK JDK(Java Development Kit),java开发工具包,它是一种用于构建在 Java 平台上发布的应用程序、applet 和组件的开发环境。其中包括了Java编译器、JVM、大量的Java工具以及Java...
  • 初学JAVA很容易被其中的很多概念弄的傻傻分不清楚,首先从概念上理解一下吧,JDK(Java Development Kit)简单理解是Java开发工具包,JRE(Java Runtime Enviroment)是Java的运行环境,JVM( java virtual machine)也...
  • 一张图搞懂JVMJREJDK三者的关系
  • JVM, JRE, JDK的区别

    2022-05-17 14:59:57
    Java Development Kit (JDK) 是用于开发 Java 应用程序和小程序的软件开发环境。它包括 Java 运行时环境 (JRE)、解释器/加载器 (Java)、编译器 (javac)、归档器 (jar)、文档生成器 (Javadoc) 以及 Java 开发所需的...
  • jvm(最底层): Java virtual machine: java 虚拟机。 Java 是一个跨平台的语言: 一次编写,处处运行。 Java 之所以能实现这样的效果,就在于 Java 有各种类型的 jvm,且各个 jvm 不跨平台,也就是说 Windows 下安装 ...
  • 很多Java的程序员在写了很多代码之后,你问他JREJDK是是什么关系JVM又是什么东西,他是不知道的。 JVM(Java Virtual Machine) Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节...
  • java之JVM,JRE,JDK三者的关系

    千次阅读 2021-03-13 08:03:08
    1.为什么要在本地安装JDK,相信很多人都只是为了安装而安装,自己并没有知道其具体原理吧,下面是我学习过程中总结的知识点:JVM是什么:Java Virtual Machine 虚拟机 源文件.java在虚拟机中通过编译器编译成字节码...
  • 1.JDKJREJVM的简介 (1) JDK (Java Development Kit): JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。 JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)...
  • JVMJDKJRE三者之间关系

    千次阅读 2019-05-06 22:52:27
    什么是JDK? 什么是JREJVMJVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说...
  • JDKJREJVM 三者关系

    千次阅读 2021-04-22 21:25:12
    从上图中我们可以看到,JDKJREJVM 之间存在这样的包含关系JDK包含 JREJRE又包含 JVM。 换句话说,只要安装了 JDKJREJVM 则自动就安装了。 那么它们分别代表什么呢: ① JDKJDK(Java Development ...
  • JVMJREJDK区别详解

    2022-03-22 11:02:32
    JVMJREJDK区别 ​ JDK Java Virtual Machine(Java虚拟机)-java程序的运行环境,JVM是一种用于计算设备的规范(所以可以有很多种JVM,甚至可以自己开发JVM),是虚构出来的计算机,是通过在实际的计算机上仿真...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 107,709
精华内容 43,083
关键字:

jvm、jre、jdk之间的关系