JDK、JRE 和 JVM 是相互依赖的。JDK(Java 开发工具包)主要是为开发者提供开发 Java 应用程序所需的工具。JRE(Java 运行时环境)则是 Java 程序运行的地方。JDK 包含了 JRE 作为其核心部分。JRE 可以单独安装在不需要开发而仅仅需要运行 Java 应用程序或执行 Java 程序的系统上。JVM(Java 虚拟机)是一个规范,只要遵循这些规范,就可以有不同的实现方式。该规范可以在以下链接中找到 − https://docs.oracle.com。JRE 是 JVM 的一种实现。
什么是 JDK?
JDK 是 Java 开发工具包的缩写,包含了编译、调试和执行 Java 程序所需的所有工具、可执行文件和二进制文件。JDK 是平台相关的,即对于 Windows、Mac 和 Unix 系统有独立的安装程序。JDK 包含了 JVM 和 JRE,完全负责代码的执行。JDK 的版本代表了 Java 的版本。
什么是 JRE?
JRE 是 Java 运行时环境,是 JVM 规范的具体实现,即在 JVM 中定义的规格在 JRE 中得到实现,并为代码的执行创建相应的环境。JRE 主要包含用于执行程序的 Java 二进制文件和其他类,就像物理存在的 JVM 一样。除了 Java 二进制文件外,JRE 还包含各种部署技术、用于与执行代码交互的用户界面、一些基本的功能库以及语言和基于 util 的库。
什么是 JVM?
JVM 是 Java 虚拟机的缩写,它是一个提供了 Java 字节码执行环境的规范。它是一个抽象的概念,其实现是独立于选择的算法,并由 Sun 及其他公司提供。JVM 负责将字节码转换为特定于机器的代码。它也可以运行那些用其他语言编写并编译成 Java 字节码的程序。JVM 执行的任务包括:加载代码、验证代码、执行代码、提供运行时环境。
JDK、JRE 和 JVM 之间的区别
下面是 JDK、JRE 和 JVM 的主要区别:
Sr. No. |
关键项 |
JDK |
JRE |
JVM |
1 |
定义 |
JDK(Java 开发工具包)是用于开发 Java 应用程序的软件开发工具包。除了 JRE 外,JDK 还包含多个开发工具(编译器、JavaDoc、Java 调试器等)。 |
JRE(Java 运行时环境)是 JVM 的实现,被定义为一个提供了 Java 类库、Java 虚拟机(JVM)以及其他组件的软件包,以运行用 Java 编程语言编写的程序。 |
JVM(Java 虚拟机)是一个抽象的机器,它是平台相关的,并有三个概念:作为规范,描述了 JVM 实现的要求;作为实现,满足了 JVM 的要求的计算机程序;作为实例,执行 Java 字节码并提供运行时环境。 |
2 |
主要功能 |
JDK 主要用于代码执行,并且其主要功能是开发。 |
相比之下,JRE 主要负责创建代码执行环境。 |
JVM 则指定了所有实现,并负责向 JRE 提供这些实现。 |
3 |
平台无关性 |
JDK 是平台相关的,即对于不同平台需要不同的 JDK。 |
与 JDK 类似,JRE 也是平台相关的。 |
JVM 是平台无关的。 |
4 |
工具 |
由于 JDK 负责主要的开发工作,所以它包含了用于开发、调试和监控 Java 应用的工具。 |
另一方面,JRE 不包含诸如编译器或调试器之类的工具。相反,它包含 JVM 运行程序所需要的类库和其他支持文件。 |
JVM 不包括软件开发工具。 |
5 |
实现 |
JDK = Java 运行时环境(JRE)+ 开发工具 |
JRE = Java 虚拟机(JVM)+ 用于运行应用的库 |
JVM = 仅用于执行 Java 字节码的运行时环境。 |