编者注:这个问题是在2009年提出的,世界在哪里不同。到2022年,标准的开源OpenJDK将只支持jdk。


JDK和JRE有什么区别?

它们的角色是什么,什么时候应该使用其中一个或另一个?


当前回答

JDK和JRE之间的区别在于,JDK是java的软件开发工具包,而JRE是运行程序的地方。

其他回答

清楚地理解这些术语(JVM、JDK、JRE)对于掌握它们的用法和区别至关重要。

JVM Java虚拟机(JVM)是执行Java字节码的运行时系统。JVM就像一台虚拟计算机,可以执行一组编译好的指令并操作内存位置。当Java编译器编译源代码时,它会在.class文件中生成一组高度优化的指令,称为字节码。JVM解释这些字节码指令,并将它们转换为特定于机器的代码以供执行。

JDK Java开发工具包(JDK)是一个软件开发环境,您可以使用它来开发和执行Java应用程序。它包括JRE和一组编程工具,如Java编译器、解释器、appltviewer和文档查看器。JDK通过Java SE、Java EE或Java ME平台实现。

JRE Java运行时环境(JRE)是JDK的一部分,它包括JVM、核心类和几个支持应用程序开发的库。尽管JRE可以作为JDK的一部分提供,但您也可以单独下载并使用它。

要完全了解,你可以看看我的博客:Jdk Jre Jvm和差异

假设,如果你是一个开发人员,那么你的角色是开发程序以及执行程序。所以你必须有开发和执行的环境,这是由JDK提供的。

假设,如果你是一个客户,那么你不必担心开发。您只需要一个运行程序并只获得结果的环境,这是由JRE提供的。

JRE执行应用程序,但JVM逐行读取指令,因此它是解释器。

JDK = JRE +开发工具

JRE = JVM +库类

从官方java网站…

JRE (Java运行环境):

它是实际执行Java程序的Java虚拟机*的实现。 Java运行时环境是运行Java程序所需的插件。 JRE比JDK小,所以它需要更少的磁盘空间。 JRE可从 https://www.java.com 它包括JVM、核心库和其他附加组件,用于运行用Java编写的应用程序和小程序。

JDK (Java Development Kit)

它是一组软件,可以用来开发基于Java的应用程序。 开发Java应用程序需要Java开发工具包。 JDK需要更多的磁盘空间,因为它包含JRE和各种开发工具。 JDK可以免费下载/支持 https://www.oracle.com/technetwork/java/javase/downloads/ 它包括JRE、一组API类、Java编译器、Webstart和编写Java小程序和应用程序所需的附加文件。

JRE即Java运行时环境。它是运行已编译Java程序所需的所有东西的包,包括Java虚拟机(JVM)、Java类库、Java命令和其他基础设施。但是,它不能用于创建新程序。

JDK是Java Development Kit,是Java的全功能SDK。它拥有JRE所拥有的一切,还包括编译器(javac)和工具(如javadoc和jdb)。它能够创建和编译程序。

通常,如果你只关心在电脑上运行Java程序,你只会安装JRE。这就是你所需要的。另一方面,如果您计划进行一些Java编程,则需要安装JDK。

有时,即使您不打算在计算机上进行任何Java开发,仍然需要安装JDK。例如,如果您正在使用JSP部署web应用程序,那么从技术上讲,您只是在应用服务器中运行Java程序。那么为什么需要JDK呢?因为应用服务器将JSP转换为Java servlet,并且需要使用JDK来编译servlet。我相信还有更多的例子。

JVM、JRE和JDK依赖于平台,因为每个操作系统的配置不同。但是,Java是平台独立的。

Java虚拟机(JVM)是执行Java字节码的运行时系统。

JRE是运行Java应用程序所需的环境(标准库和JVM)。

JDK包括JRE和命令行开发工具,如编译器和调试器,这对于开发applet和应用程序是必要的或有用的。