JDK,JRE,JVM之间的关系,向来是讨论非常,小编也稍微整理了一下他们之间的关系,希望能够对大家有所帮助
首先从oracle官网上,可以很清晰的看明白JDK,JRE和Java Virtual Machine之间的关系,官网的介绍如下
地址:
Oracle有两种实现Java Platform Standard Edition(Java SE)8的产品:Java SE Development Kit(JDK)8和Java SE Runtime Environment(JRE)8。
JDK 8是JRE 8的超集,包含JRE 8中的所有内容,以及开发小程序和应用程序所需的工具,例如编译器和调试器。JRE 8提供了库,Java虚拟机(JVM)和其他组件,以运行用Java编程语言编写的小程序和应用程序。请注意,JRE包含Java SE规范不需要的组件,包括标准和非标准Java组件。
以下概念图说明了Oracle Java SE产品的组件:
Java概念图的描述
而我们知道,软件是跑在操作系统上的,而软件的目的是通过电子化简化生活中的某个场景的工作,提升效率,所以一些开发工具中会集成Java的运行环境和相关工具,在讨论JDK,JRE,JVM之间的关系这个话题的时候,有几个需要了解常用概念,详情如下:
- 常用操作系统:Windows,Linux,Unix,红旗,ubuntu,Fedora,Debian,苹果操作系统,当然,可能我们最常用到的就是Windows系统和Linux系统了
- 常用IDE环境:【Integrated Development Environment】也可以理解是开发工具 JBuilder,Eclipse,MyEclipse,IntelliJ IDEA,...
- JDK: 【Java Development Kid Java开发工具包】,这是提供给Java开发人员的产品,是整个Java的核心所在,包括Java运行环境JRE,Java工具和基础类库【javac,jar,debugging tools javap】
- JRE:【Java Runtime Environment Java运行时环境】,是运行 JAVA 程序所必须的环境的集合,包含 JVM 标准实现及 Java 核心类库。【java,javaw,libraries,rt.jar】
- JVM:【Java Virtual Machine Java虚拟机】:这是 Java 实现跨平台最核心的部分,支持运行 Java程序。
- JIT:【Just In Time Compiler 即时编译器】
所以最后结合操作系统,开发工具,最终的结论如图所示:
|