JDK和JRE有什么区别?

问题

JDK和JRE有什么区别?
他们的角色是什么,我应该何时使用其中一个?


#1 热门回答(891 赞)

JRE:Java运行时环境。它基本上是运行Java程序的Java虚拟机。它还包括用于Applet执行的浏览器插件。

JDK:它是用于Java的全功能软件开发工具包,包括JRE,以及用于创建和编译程序的编译器和工具(如JavaDoc和Java Debugger)。

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

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


#2 热门回答(110 赞)

巴勃罗非常正确。这只是附加信息:

顾名思义,“TheJRE”是一种环境。它基本上是一堆包含Java相关文件的目录,即:

  • / bin包含可执行程序,如java和(对于Windows)javaw,它本质上是Java虚拟机的程序;
  • / lib包含大量支持文件:一些jar,配置文件,属性文件,字体,声音,图标...... Java的所有“修剪”。最重要的是rt.jar和可能的一些兄弟,它们包含“java API”,即Java库代码。
  • 安装程序可能将操作系统指定的某个目录拖到某处,某些地方是.DLL(对于Windows)或.so(Unix / Linux),具有支持的,通常是系统特定的本机二进制代码。

TheJDK也是一组目录。它看起来很像JRE,但它包含一个完整的JRE的目录(称为JRE),并且它有许多开发工具,最重要的是它的bin目录中的Java编译器javac


#3 热门回答(96 赞)

enter image description here

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