本文正在参加「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 WebStart
、Java plugin
,以及一些第三方组件,如图像处理器,还有零碎的东西,比如附加文档和第三方字体。我们会开源OracleJDK除了被认为是商业模块的部分。
文章翻译自Stack Overflow:stackoverflow.com/questions/1…