JDK和JRE有什么区别?

2022-08-31 03:58:08

JDK和JRE有什么区别?

他们的角色是什么,我什么时候应该使用其中一个?


答案 1

JREJava 运行时环境。它是运行已编译的 Java 程序所需的一切的包,包括 Java 虚拟机 (JVM)、Java 类库、命令和其他基础结构。但是,它不能用于创建新程序。java

JDKJava开发工具包,是用于Java的全功能SDK。它具有JRE拥有的所有内容,还具有编译器()和工具(如和)。它能够创建和编译程序。javacjavadocjdb

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

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


答案 2

上面的答案(由Pablo)是非常正确的。这只是附加信息。

顾名思义,JRE是一个环境。它基本上是一堆带有Java相关文件的目录,即:

  • bin/包含 Java 的可执行程序。最重要的是(对于Windows来说也是如此),它启动了JVM。这里还有一些其他实用程序,例如 和 。javajavawkeytoolpolicytool
  • conf/保存用户可编辑的配置文件,供 Java 专家使用。
  • lib/有大量的支持文件:一些s,配置文件,属性文件,字体,翻译,证书等 - Java的所有“修剪”。最重要的是 ,一个包含 Java 标准库文件的文件。.jarmodules.class
  • 在某个级别,Java标准库需要调用本机代码。为此,JRE 包含一些 (Windows) 或 (macOS) 或 (Linux) 文件,这些文件位于受支持的、特定于系统的本机二进制代码下,或者包含支持性的本机二进制代码。.dll.dylib.sobin/lib/

JDK 也是一组目录。它是 JRE 的超集,并添加了一些内容:

  • bin/已通过开发工具进行了扩展。其中最重要的是;其他包括 和 。javacjarjavadocjshell
  • jmods/,其中包含标准库的 JMOD 文件,已添加。这些文件允许标准库与 一起使用。jlink

推荐