JVM、JDK、JRE、OpenJDK各自都是什么意思?| Java Debug 笔记

本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看<活动链接>

提问:JVM、JDK、JRE、OpenJDK各自都是什么意思?

回答一

JVM

JVM就是运行Java字节码的虚拟机。JVM无法直接运行Java源码,这就是为何你需要编译.java文件来获得JVM能理解的.class文件。JVM也是Java能够跨平台运行的重要原因。事实上,JVM在不同的系统中都有特定的实现,其目的是使用相同的字节码能运行出相同的效果。

JDK、JRE

要理解JDK和JRE的区别,最好的方式是阅读Oracle官方文档,并理解下面这段话:

  • Java Runtime Environment(JRE)

JRE提供了库、JVM和其它组件,用于运行有Java语言编写的应用程序。另外,JRE中有两个关键技术:Java Plug-in:能让applet运行在主流浏览器上。Java Web Start,它通过网络独立部署。它也是Java EE开发和部署的基础。JRE不包含加法应用的工具,如编译器、调试器。

  • Java Development Kit (JDK)

JDK是JRE的超集,它包含JRE中的所有内容,以及开发applet和应用程序所需的编译器、调试器等工具。

请注意除了Oracle外还有其它组织也在维护JDK

OpenJDK

OpenJDK是JDK的开源版本,也是OracleJDK的基础。OracleJDK和OpenJDK之间几乎没有什么区别。

这是官方的回答:

我们的OracleJDK是基于OpenJDK构建的,不同之处在于,我们为OracleJDK添加了几部分功能,比如Java WebStartJava plugin,以及一些第三方组件,如图像处理器,还有零碎的东西,比如附加文档和第三方字体。我们会开源OracleJDK除了被认为是商业模块的部分。

文章翻译自Stack Overflow:stackoverflow.com/questions/1…

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享