JVM, JDK, JRE和OpenJDK之间的区别是什么?

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


当前回答

JDK——像javac这样的工具用于将*.java文件编译为*.class字节码文件(主要用于开发Java程序)

JRE -运行*.jar文件的工具(基本上运行Java程序)

JVM -将*.class文件编译为可执行机器代码的工具(运行所有Java字节码)

OpenJDK只是Java JDK的一个发行版。

其他回答

JVM:这实际上意味着字节码解释器。它依赖于平台。例如:在Windows平台上,'java.exe'或'javaw.exe'进程是jvm进程。

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

JRE: java应用程序的执行环境。即,它只支持运行时依赖,包括JVM编译程序。如果我们想编译一个java程序,我们需要jdk。

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

javac file.java // Is executed using JDK

JVM——执行字节代码。JVM使java平台独立。但是JVM因平台而异。

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

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

JRE是Java运行时环境——其中包含JVM,并且是运行Java程序所需要的。

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

OpenJDK是一个特定的JDK实现。

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

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

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

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

总而言之:

JRE = JVM + Java包(如util, math, lang, awt, swing等)+ 运行时库 JDK = JRE +开发/调试工具

如果你想用java开发,你需要JDK,但如果你只想运行java,你需要JRE。