JDK和JRE有什么区别?
他们的作用是什么?我应该什么时候使用其中一种?
简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit
JRE是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的Server端Java虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE。如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE。
JRE的地位就象一台PC机一样,我们写好的 Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运行Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。
JRE:Java运行时环境。它基本上是运行Java程序的Java虚拟机。它还包括用于Applet执行的浏览器插件。
JDK:这是用于Java的全功能软件开发工具包,包括JRE,以及用于创建和编译程序的编译器和工具(如JavaDoc和Java Debugger)。
通常,当您只关心在浏览器或计算机上运行Java程序时,您将只安装JRE。这是你所需要的。另一方面,如果你打算做一些Java编程,你也将需要JDK。
有时,即使您不打算在计算机上执行任何Java开发,您仍然需要安装JDK。例如,如果您正在使用JSP部署Web应用程序,则技术上 只是在应用程序服务器内部运行Java程序。那你为什么还需要JDK?因为应用程序服务器会将JSP转换成Servlet并使用JDK来编译servlet。我相信可能会有更多的例子。