首页 文章

JVM,JDK,JRE和OpenJDK有什么区别?

提问于
浏览
287

JVMJDKJREOpenJDK 之间有什么区别?

我是用Java编程的,我遇到了这些短语,它们之间有什么区别?

18 回答

  • 44

    JDK - 将java编译为字节代码 . 由调试器,编译器等组成 .

    javac file.java // Is executed using JDK
    

    JVM - 执行字节代码 . JVM是使java平台独立的一个 . 但JVM因平台而异 .

    JRE - JVM以及用于执行java程序的java运行时库 .

  • 3

    JVM

    Java Virtual Machine (JVM)是运行Java字节码的虚拟机 . JVM没有't understand Java source code; that'为什么要编译 *.java 文件以获取包含JVM理解的字节码的 *.class 文件 . 它也是允许Java成为"portable language"的实体(一次编写,随处运行) . 实际上,JVM的特定实现适用于不同的系统(Windows,Linux,macOS,see the Wikipedia list),目的是使用相同的字节码,它们都会给出相同的结果 .

    JDK和JRE

    要解释JDK和JRE之间的区别,最好是阅读Oracle documentation并参考图表:

    Java运行时环境(JRE)Java运行时环境(JRE)提供库,Java虚拟机和其他组件来运行用Java编程语言编写的applet和应用程序 . 此外,两个关键的部署技术是JRE的一部分:Java Plug-in,它使applet能够在流行的浏览器中运行;和Java Web Start,它通过网络部署独立应用程序 . 它也是用于企业软件开发和部署的Java 2平台企业版(J2EE)中的技术的基础 . JRE不包含用于开发applet和应用程序的工具和实用程序,如编译器或调试器 . Java开发工具包(JDK)JDK是JRE的超集,包含JRE中的所有内容,以及开发applet和应用程序所需的编译器和调试器等工具 .

    请注意,Oracle不是唯一提供JDK的人 .

    OpenJDK

    OpenJDK 是JDK的开源实现,也是Oracle JDK的基础 . Oracle JDK和OpenJDK几乎没有区别 .

    差异在blog中说明:

    问:OpenJDK存储库中的源代码与用于构建Oracle JDK的代码之间有什么区别?答:非常接近 - 我们的Oracle JDK版本构建过程基于OpenJDK 7构建,只添加了几个部分,例如部署代码,其中包括Oracle的Java插件和Java WebStart的实现,以及一些封闭的源代码派对组件,如图形光栅化器,一些开源的第三方组件,如Rhino,以及一些零碎的东西,如附加文档或第三方字体 . 展望未来,我们的目的是开源Oracle JDK的所有部分,除了我们考虑商业功能的部分,例如JRockit Mission Control(Oracle JDK中尚未提供),并用开源替代品替换受阻的第三方组件以实现更接近的平价代码库之间 .

  • 4

    JVM是Java虚拟机 - 它实际上运行Java字节码 .

    JRE是Java运行时环境 - 它包含一个JVM,以及运行Java程序所需的内容 .

    JDK是Java开发工具包 - 它是JRE,但是使用javac(这是编译Java源代码所需的)和其他编程工具的添加 .

    OpenJDK是一个特定的JDK实现 .

  • 6

    JDK (Java Development Kit)

    Java Developer Kit包含开发Java程序所需的工具,以及运行程序的JRE . 这些工具包括编译器(javac.exe),Java应用程序启动器(java.exe),Appletviewer等...

    编译器将java代码转换为字节代码 . Java应用程序启动器打开一个JRE,加载该类,并调用其main方法 .

    你需要JDK,如果你想编写自己的程序,并编译它们 . 对于运行java程序,JRE就足够了 .

    JRE的目标是执行Java文件

    i.e. JRE = JVM Java包类(如util,math,lang,awt,swing等)运行时库 .

    JDK主要针对Java开发 . 即您可以创建Java文件(在Java包的帮助下),编译Java文件并运行java文件 .

    JRE (Java Runtime Environment)

    Java运行时环境包含JVM,类库和其他支持文件 . 它不包含任何开发工具,如编译器,调试器等 . 实际上JVM运行程序,它使用类库和JRE中提供的其他支持文件 . 如果要运行任何java程序,则需要安装JRE系统

    Java虚拟机提供了一种独立于平台的执行代码的方式;这意味着在任何机器中编译一次并在任何地方(任何机器)运行它 .

    JVM (Java Virtual Machine)

    我们都知道在编译Java文件时,输出不是'exe',而是'.class'文件 . '.class'文件由JVM可理解的Java字节代码组成 . Java虚拟机根据底层操作系统和硬件组合将字节代码解释为机器代码 . 它负责垃圾收集,数组边界检查等所有事情...... JVM依赖于平台 .

    JVM被称为“虚拟”,因为它提供的机器接口不依赖于底层操作系统和机器硬件架构 . 这种与硬件和操作系统的独立性是Java程序的一次写入运行任务值的基石 .

    有不同的JVM实现 . 这些可能在性能,可靠性,速度等方面有所不同 . 这些实现将在Java规范未提及如何实现这些功能的区域中有所不同,例如垃圾收集过程如何工作是依赖于JVM的,Java规范没有定义任何具体的方法来做到这一点 .

  • 15

    Java virtual machine (JVM) 是可以执行Java字节码的虚拟机 . 它是Java软件平台的代码执行组件 .

    Java Development Kit (JDK) 是针对Java开发人员的Oracle Corporation产品 . 自Java引入以来,它一直是使用最广泛的Java软件开发工具包(SDK) .

    Java Runtime Environment ,也称为Java Runtime,Runtime Environment

    OpenJDK (Open Java Development Kit) 是Java编程语言的免费开源实现 . 这是Sun Microsystems于2006年开始的努力的结果 . 该实现是根据GNU通用公共许可证(GPL)许可的,具有链接异常 .

  • 2

    Simply:

    JDK (Java开发工具包):

    • 包含开发Java程序所需的工具 .

    • 你需要JDK,如果你想编写自己的程序,并编译它们 .

    • JDK主要针对java开发 .

    JRE (Java运行时环境)

    Java运行时环境包含JVM,类库和其他支持文件 . JRE的目标是执行Java文件 .

    JVM (Java虚拟机)

    JVM interprets the byte code into the machine code 取决于底层操作系统和硬件组合 . 它负责垃圾收集,数组边界检查等所有事情...... Java虚拟机提供了一种独立于平台的执行代码的方式 .

  • 0

    JVM 是执行的虚拟机Java代码

    JRE 是运行Java应用程序所需的环境(标准库和JVM)

    JDK 是包含开发人员工具和文档的JRE

    OpenJDK 是JDK的开源版本,与Oracle拥有的常见JDK不同

  • 336

    另一方面值得一提:

    JDK (java development kit)

    您将需要它用于开发目的,如名称建议 .

    例如:一家软件公司将在他们的计算机上安装JDK,因为他们需要开发新的软件,包括编译和运行他们的Java程序 .

    所以我们可以说JDK = JRE JVM .

    JRE (java run-time environment)

    它需要运行Java程序 . 你不能用它编译Java程序 .

    例如:想要运行某些在线游戏的普通计算机用户将需要在他的系统中运行JRE来运行Java程序 .

    JVM (java virtual machine)

    您可能知道它运行字节码 . 它使Java平台独立,因为它执行编译Java程序后得到的 .class 文件,无论您是在Windows,Mac还是Linux上编译它 .

    Open JDK

    好吧,就像我上面说的那样 . 现在JDK是由不同的公司制作的,其中一个恰好是开源的,免费供公众使用的是OpenJDK,而另一些则是Oracle Corporation的JRockit JDK或IBM JDK .

    但是它们对于普通用户来说可能看起来都一样 .

    Conclusion

    如果您是Java程序员,您将需要在您的系统中使用JDK,此程序包也将包含JRE和JVM,但如果您是喜欢玩的普通用户在线游戏那么你只需要JRE,这个包就不会有JDK了 .

    换句话说,JDK是祖父JRE是父亲而JVM是他们的儿子 .

  • 77

    Java是一种语言,包含严格且强类型的语法,您现在应该非常熟悉它 .

    Java 2 Platform,Standard Edition,也称为J2SE,引用该平台并包括java.lang和java.io包中的类等 . 它是构建Java应用程序的构建块 .

    Java虚拟机(JVM)是运行已编译Java代码的软件虚拟机 . 因为编译的Java代码只是字节码,所以JVM负责在运行之前将该字节码编译为机器代码 . (这通常称为即时编译器或JIT编译器 . )JVM还负责内存管理,以便应用程序代码不必 .

    Java开发工具包(JDK)一直是Java开发人员用来创建Java应用程序的软件 . 它包含Java语言编译器,文档生成器,用于处理本机代码的工具,以及(通常)用于启用调试平台类的平台的Java源代码 .

    Java Runtime Environment或JRE曾经是并且仍然是最终用户下载以运行编译的Java应用程序的软件 . 它包含一个JVM,但不包含JDK中捆绑的任何开发工具 . 但是,JDK确实包含JRE .

  • 0

    简单来说:

    JVM : 描述运行java程序的方式/资源的规范 . 实际上执行字节代码并使java平台独立 . 这样做,对于不同的平台是不同的 . Windows的JVM无法用作UNIX的JVM .

    JRE : JVM的实现 . (JVM运行时库)

    JDK : JRE java编译器和其他从头开始构建java程序的必备工具

  • 0

    JVM :这实际上意味着字节码解释器 . 它与平台有关 . 例如:在Windows平台中,'java.exe ' or ' javaw.exe'进程是jvm进程 .

    JDK :是一个工具包,包含开发和执行java程序/应用程序所需的库和实用程序

    JRE :是java application.ie的执行环境,它只支持运行时依赖项,包括编译程序的jvm . 如果我们想编译一个java程序,我们需要jdk .

  • 2

    JVM:java的虚拟机 . 告诉机器如何处理Java代码 . 您不能按原样下载JVM . 它包装在一些其他组件中 .

    JRE:上面提到的其他一些组件是JRE . 它是JVM其他jar创建运行时环境

    JDK:包含JRE(后者又包含JVM) . 获得JDK后,无需单独安装JRE和JVM . 它包含将.java文件编译为.class文件的编译器

  • 3

    JVM

    JVM(Java虚拟机)是一个抽象机器 . 它是一个规范,提供可以执行java字节码的运行时环境 . JVM可用于许多硬件和软件平台 .

    JRE

    JRE是Java Runtime Environment的首字母缩写 . 它用于提供运行时环境 . 它是JVM的实现 . 它实际上是存在的 . 它包含JVM在运行时使用的其他文件库 .

    JDK

    JDK是Java Development Kit的首字母缩写 . 它实际上是存在的 . 它包含JRE开发工具 .

    链接: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

  • 2

    JRE 执行应用程序,但JVM逐行读取指令,因此它是解释器 .

    JDK = JRE开发工具

    JRE = JVM库类

  • 1

    JVM 缩写为 Java Virtual Machine ,JVM是java体系结构的主要组件 . JVM是用C编程语言编写的 . Java编译器为JVM生成字节代码 . JVM读取字节码验证字节码并将代码与ibrary链接 .

    JRE 缩写为 Java Runtime Environment . 它在运行时提供环境 . 它实际存在 . 它包含JVM集库(jar)其他文件 .

    JDK 缩写为 Java Development Kit . 它是开发java应用程序 . 还有调试和监控java应用程序 . JDK包含JRE开发工具(javac,java)

    OpenJDK OpenJDK是sun JDK的开源版本 . Oracle JDK是Sun的官方JDK .

  • 22

    JVM Java虚拟机,实际上执行java字节码 . 它是JAVA平台上的执行块 . 它将字节码转换为机器码 .

    JRE Java Runtime Environment,提供执行Java应用程序的最低要求;它由Java虚拟机(JVM),核心类和支持文件组成 .

    JDK Java Development Kit,它拥有开发应用程序软件的所有工具 . 它就像JRE JVM一样

    Open JDK 是Java平台的免费开源实现 .

  • 12

    通俗地说: - JDK = JRE开发/调试工具,其中JDK是我们使用Java的完整包,从创建编译到运行它 . 另一方面,JRE只是运行代码(字节代码) .

    注意: - 无论我们是安装JDK还是JRE,JVM都会与这两个软件包捆绑在一起,而JVM是JIT编译器将字节代码转换为机器特定代码的部分 .

    刚刚阅读JDK,JRE ,JVM and JIT上的文章

  • 1

    JDK :您需要编写并运行java代码的完整包

    OpenJDK :JDK的独立实现,使其更好

    JVM :将Java代码转换为字节码,并提供说明如何编译,加载,验证,检查错误并执行Java代码的规范 .

    JRE :JVM的实现,使用某些Java库来运行程序

相关问题