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


JDK和JRE有什么区别?

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


当前回答

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。我相信还有更多的例子。

其他回答

JRE

JRE是Java运行时环境的首字母缩写。它用于提供运行时环境。它是JVM的实现。它是物理存在的。它包含一组库+ JVM在运行时使用的其他文件。

JDK

JDK是Java Development Kit的首字母缩写。它是物理存在的。它包含JRE +开发工具。

链接:- http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

通常,当您只关心在浏览器或计算机上运行Java程序时,您只会安装JRE。这就是你所需要的。另一方面,如果您计划进行一些Java编程,则还需要JDK。

JDK是JRE的超集,包含JRE中的所有内容,以及开发小程序和应用程序所需的编译器和调试器等工具。JRE提供库、Java虚拟机(JVM)和其他组件来运行用Java编程语言编写的小程序和应用程序。

如果您想运行Java程序,但不想开发它们,请下载Java运行时环境(JRE)。如果您想开发它们,请下载Java开发工具包或JDK

JDK

JDK是一个工具包,包括开发和运行java应用程序所需的东西。

JDK是用于构建应用程序、组件和小程序的开发环境。

JRE

它包含以编译形式运行Java应用程序所需的所有内容。你不需要任何库和其他东西。你需要的所有东西都编译好了。

JRE不能用于开发,只能用于运行应用程序。

从官方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小程序和应用程序所需的附加文件。

清楚地理解这些术语(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和差异