JVM, JDK, JRE和OpenJDK之间的区别是什么?
我在用Java编程时遇到了这些短语,它们之间有什么区别?
JVM, JDK, JRE和OpenJDK之间的区别是什么?
我在用Java编程时遇到了这些短语,它们之间有什么区别?
当前回答
JVM是执行Java代码的虚拟机
JRE是运行Java应用程序所需的环境(标准库和JVM)
JDK是带有开发人员工具和文档的JRE
OpenJDK是一个开源版本的JDK,不像Oracle拥有的普通JDK
其他回答
JVM是执行Java代码的虚拟机
JRE是运行Java应用程序所需的环境(标准库和JVM)
JDK是带有开发人员工具和文档的JRE
OpenJDK是一个开源版本的JDK,不像Oracle拥有的普通JDK
JVM:描述运行java程序的方式/资源的规范。实际执行字节代码,使java平台独立。在这个过程中,不同的平台是不同的。windows的JVM不能像UNIX的JVM那样工作。
JRE: JVM的实现。(JVM +运行时库)
JDK: JRE + java编译器等基本工具,从零开始构建java程序
JDK——像javac这样的工具用于将*.java文件编译为*.class字节码文件(主要用于开发Java程序)
JRE -运行*.jar文件的工具(基本上运行Java程序)
JVM -将*.class文件编译为可执行机器代码的工具(运行所有Java字节码)
OpenJDK只是Java JDK的一个发行版。
总而言之:
JRE = JVM + Java包(如util, math, lang, awt, swing等)+ 运行时库 JDK = JRE +开发/调试工具
如果你想用java开发,你需要JDK,但如果你只想运行java,你需要JRE。
JDK (Java Development Kit):
包含开发Java程序所需的工具。 如果您想编写自己的程序并编译它们,则需要JDK。 JDK主要针对java开发。
JRE (Java Runtime Environment)
Java运行时环境包含JVM、类库和其他支持文件。 JRE的目标是执行Java文件。
JVM (Java虚拟机)
JVM根据底层操作系统和硬件组合将字节码解释为机器码。它负责所有的事情,比如垃圾收集、数组边界检查等等……Java虚拟机提供了一种平台独立的代码执行方式。