是什么JVM,JDK,JRE和OpenJDK的区别?(What is the difference

2019-06-17 12:05发布

是什么JVM,JDK,JREOpenJDK的区别?

我在编程Java和我遇到的这些话,什么是它们之间的区别是什么?

Answer 1:

JVM

Java虚拟机 (JVM)是运行Java字节代码的虚拟机。 JVM的不理解Java源代码; 这就是为什么你需要编译*.java文件获取*.class包含由JVM理解的字节码文件。 这也是让Java成为一个“便携式语言”实体( 一次编写,随处运行 )。 事实上,有JVM的不同系统(Windows,Linux和MacOS的,具体实现时看到维基百科的列表 ),其目的是用相同的字节码,他们都给予了相同的结果。

JDK和JRE

为了解释JDK和JRE的区别,最好是阅读Oracle文档和参考图:

Java运行环境(JRE)

Java运行时环境(JRE)提供的库,Java虚拟机和其他组件运行用Java编程语言applet和应用程序。 此外,还有两个关键部署技术是JRE的一部分:Java插件,这使得小程序在流行的浏览器上运行; 和Java Web Start,它部署在网络上的独立应用程序。 这也是在Java 2平台企业版(J2EE)企业软件开发和部署的技术奠定了基础。 该JRE不包含的工具和实用程序,如编译器或调试器开发applet和应用程序。

Java开发工具包(JDK)

在JDK是JRE的超集,并包含一切,这是在JRE,再加上工具,如需要开发applet和应用程序的编译器和调试器。

注意,Oracle并不是唯一一家提供的JDK。

OpenJDK的

OpenJDK的是JDK的开放源代码实现和为Oracle JDK的基础。 这里是Oracle JDK和OpenJDK的几乎没有区别。

差异在此列示博客 :

问:是什么在OpenJDK的存储库中找到源代码之间的差异,以及代码用于构建了Oracle JDK?

答:这是非常接近 - 我们的Oracle JDK版本构建过程中只需添加几件,如部署代码,其中包括Oracle实现的Java插件和Java Webstart的,以及一些封闭源代码的第三个建立在OpenJDK 7的党的组件,如图形光栅化,一些开源的第三方组件,如犀牛,还有一些零碎在这里和那里一样,更多的文件或第三方字体。 展望未来,我们的目的是开源的Oracle JDK的所有作品,除了那些我们认为商业功能,如JRockit的任务控制(在Oracle JDK尚未公布),并与开放源代码的替代品,以实现更接近平价替代的担保第三方组件该代码库之间。

更新JDK 11 -唐纳德·史密斯的文章试图消除歧义的Oracle JDK和Oracle的OpenJDK之间的区别: https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-然后



Answer 2:

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

JRE是Java运行时环境 - 它包含一个JVM,除其他事项外,并且是你需要运行Java程序的。

JDK是Java开发工具包 - 它是JRE,但是用javac(这是你需要编译Java源代码的),并添加其他编程工具。

OpenJDK的是一个特定的JDK实现。



Answer 3:

JDK(Java开发工具包)

Java开发套件包含了开发Java程序所需的工具和JRE来运行程序。 这些工具包括编译器(javac.exe),Java应用程序启动器(java.exe的),小程序查看,等...

编译Java代码转换成字节码。 Java应用程序启动打开一个JRE,加载类,并调用它的主要方法。

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

JRE是针对Java文件执行

JRE = JVM + Java包类(如UTIL,数学,郎,AWT,摆动等)+运行时库。

JDK主要是针对Java开发。 即你可以创建一个Java文件(Java包的帮助下),编译Java文件并运行一个Java文件。

JRE(Java运行环境)

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

Java虚拟机提供了执行代码的平台无关的方式; 这意味着在任何一台机器一次编译并运行它的任何地方(任何机器)。

JVM(Java虚拟机)

大家都知道,当我们编译Java文件,输出不是一个“EXE”,但它是一个”的.class'文件。 ”的.class'文件包含哪些是由JVM可以理解的Java字节码。 Java虚拟机解释的字节代码转换成根据底层操作系统和硬件的组合的机器代码。 它负责所有像垃圾收集,数组边界检查,等事情...... JVM平台相关。

因为它提供了不依赖于底层操作系统和机器的硬件架构上的人机接口的JVM被称为“虚拟”。 本文从硬件和操作系统的独立性是Java程序的一次写入随处运行值的基石。

有不同的JVM实现在那里。 这些可能的事情一样的性能,可靠性,速度等,这些的实现将在Java规范中没有提到如何实现的功能,如垃圾收集过程是如何工作的领域不同,不同的是JVM依赖,Java规范不定义任何特定的方式来做到这一点。



Answer 4:

Java虚拟机(JVM)是能够执行Java字节码的虚拟机。 它是Java软件平台的代码执行组件。

Java开发工具包(JDK)是Oracle公司的产品针对Java开发人员。 由于引入的Java,它一直是迄今为止最广泛使用的Java软件开发工具包(SDK)。

Java运行时环境 ,也称为Java运行时,运行时环境

OpenJDK的(开放的Java开发工具包)是Java编程语言的自由和开源实现。 这是一个努力Sun Microsystems公司在2006年开始实行的是GNU通用公共许可证(GPL)与联例外许可下的结果。



Answer 5:

JDK(Java开发工具包):

  • 包含开发Java程序所需的工具。
  • 你需要JDK,如果你想编写自己的程序,并编译它们。
  • JDK主要是针对Java开发。

JRE(Java运行环境)

Java运行时环境中包含的JVM,类库以及其他支持文件。 JRE是针对Java文件执行。

JVM(Java虚拟机)

JVM 解释的字节代码转换成根据底层操作系统和硬件的组合的机器代码 。 它负责所有像垃圾收集,数组边界检查,等事情...... Java虚拟机提供了执行代码的平台无关的方式。



Answer 6:

JVM是虚拟机执行Java代码上

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

JDK是开发工具和文档的JRE

OpenJDK的是JDK的开源版本,不同于常见的JDK属于Oracle



Answer 7:

JDK -编译的Java字节码。 的调试器,编译器等组成

javac file.java // Is executed using JDK

JVM -执行字节码。 JVM是一个使独立的Java平台。 但对于JVM平台的不同而不同。

JRE - JVM与Java运行时库一起执行Java程序。



Answer 8:

另一个方面值得一提:

JDK(Java开发工具包)

就像名字所暗示的,你会需要它用于开发目的。

例如:一家软件公司将JDK安装在自己的电脑,因为他们需要开发涉及编译和运行他们的Java程序,以及新的软件。

因此,我们可以说,JDK = JRE + JVM。

JRE(Java运行时环境)

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

例如:谁想要运行一些网络游戏则需要JRE在他的系统运行Java程序在普通电脑用户。

JVM(Java虚拟机)

正如你可能知道它运行的字节码。 它使独立的Java平台,因为它执行.class你编译Java程序之后,不管你是否编译它在Windows,Mac或Linux,你得到的文件。

打开JDK

嗯,就像我上面说的。 现在JDK是由不同的公司生产的,其中一人恰好是一个开源和免费供公众使用的是OpenJDK的,而有些则是Oracle公司的JRockit JDK或IBM JDK。

不过,他们都可能会出现相同的一般用户。

结论

如果你是一个Java程序员,你需要JDK在您的系统,这个软件包将包括JRE和JVM很好,但如果你是谁喜欢玩网络游戏的话,普通用户,你只需要JRE和这个包不会有JDK在它。

换句话说JDK是爷爷JRE是父亲和JVM是他们的儿子。



Answer 9:

Java是语言,包括严格的强类型的语法与您应该现在非常熟悉。

Java 2平台标准版,也被称为J2SE,简称平台和包含在java.lang和java.io包中的类,等等。 它是Java应用程序都在建的构建块。

Java虚拟机,或JVM,是运行编译的Java代码的软件的虚拟机。 因为编译的Java代码仅仅是字节码,在JVM负责汇编该字节码到机器代码运行它之前。 (这通常被称为即时编译器或JIT编译器。)JVM还负责内存管理,使应用程序代码不必。

Java开发工具包,或JDK,是而且仍然是一块软件Java开发人员使用它来创建Java应用程序。 它包含了Java语言编译器,文档生成器,工具,实现与本机代码,(典型值)的Java源代码工作的平台,使调试平台类。

Java运行时环境,或JRE,是而且仍然是一款软件的最终用户下载运行编译的Java应用程序。 它包括一个JVM,但不包含任何在JDK捆绑在一起的开发工具。 该JDK,但是,确实包含JRE。



Answer 10:

JVM:它描述的方式/资源来运行Java程序的规范。 实际执行的字节代码,进行独立的Java平台。 这样做,它是针对不同平台不同。 JVM for Windows无法用于UNIX的JVM工作。

JRE:JVM的实现。 (JVM +运行时间库)

JDK:JRE + Java编译器和其他必要的工具来从头开始构建一个Java程序



Answer 11:

JVM:这实际上意味着字节码解释器。它是依赖于平台。 对于例如:在Windows平台上“ 的java.exe”“javaw.exe的 ”进动是JVM进程。

JDK:是含有必要的库和实用程序开发和执行的Java程序/应用程序的工具包

JRE:是一个java application.ie执行环境,它仅支持运行时依赖,包括JVM的编译程序。 如果我们想编译Java程序,我们需要JDK。



Answer 12:

JVM:Java的虚拟机。 告诉机器做什么用的Java代码。 如无法下载JVM。 它被打包在其他一些部件。

JRE:如上述提到的一些其他部件是JRE。 这是JVM +其他罐子创建运行environmeny

JDK:包含JRE(其中又包含JVM)。 一旦你的JDK您无需单独安装JRE和JVM。 它包含编译器来编译你的.java文件到.class文件



Answer 13:

JVM

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

JRE

JRE是Java运行时Environment.It的缩写,是用来提供运行时environment.It是JVM.It实施物理exists.It包含设置库+其他文件JVM在运行时使用的。

JDK

JDK是Java开发Kit.It的缩写物理exists.It包含JRE +开发工具。

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



Answer 14:

JVM简称Java虚拟机 ,JVM是Java体系的主要组成部分。 JVM是用C编程语言。 Java编译器产生的JVM字节码。 JVM读取字节码校验字节代码和链接与ibrary的代码。

JRE简称为Java运行时环境 。 它是在运行时提供的环境。 这是实际存在的。 它包含JVM +集库(JAR)+其他文件。

JDK简称为Java开发工具包 。 它是开发Java应用程序。 而且调试和监控Java应用程序。 JDK包含JRE +开发工具(javac的,JAVA)

OpenJDK的 OpenJDK的是太阳JDK的开源版本。 甲骨文的JDK是Sun的官方JDK。



Answer 15:

JVM Java虚拟机,实际执行的Java字节码。 它是Java平台上的执行单元。 它可以转换字节码到机器代码。

JRE Java运行时环境,提供了一种用于执行Java应用程序的最低要求; 它由Java虚拟机(JVM),核心类和支持文件。

JDK Java开发工具包,它拥有所有开发应用软件的工具。 这是因为JRE + JVM

打开JDK是Java平台的免费和开源实现。



Answer 16:

在外行的术语: - JDK = JRE +开发/调试工具 ,其中JDK是我们完整的包与Java的工作,从创建编译直到运行it.On另一方面JRE只是运行的代码(字节码)的。

注: - 无论我们在安装JDK或JRE,JVM会来与两包捆绑和JVM就是JIT编译器将字节码到机器特定的代码部分。

只要阅读的文章JDK,JRE,JVM和JIT



Answer 17:

JDK:完整的软件包,你需要编写和运行Java代码

OpenJDK的 :为使其更好地独立执行的JDK

JVM:Java代码转换成字节码,并提供它告诉应该如何在Java代码进行编译,下载,核实,检查错误和执行的规范。

JRE:JVM的实现与一些Java库用于运行程序



Answer 18:

JRE执行应用程序,但JVM逐行读取指令行,以便它的解释。

JDK = JRE +开发工具

JRE = JVM +库类



文章来源: What is the difference between JVM, JDK, JRE & OpenJDK?