每个JDK为什么都带有3个JRE?

7
我注意到在C:\Program Files\Java文件夹中,有JDK安装的公共JRE,我知道这是正常的。但是还有一个jdk1.x\jre\bin\文件夹,里面有java.exe,javaw等文件。然后还有编译器文件夹jdk1.x\bin,其中包含javac以及JRE中包含的所有其他文件,如java.exe,javaw,appletviewer等。
为什么JDK带有所有这些JRE?这3个之间有什么区别?

好问题,对这个问题点个赞。 - Bhavik Ambani
我也支持这个问题。我认为没有必要安装JDK时再安装JRE。 - Tinman
可能是what's the difference between java/javaw/javaws?的重复问题。 - Mike Samuel
2个回答

3

Sun/Oracle 在这里记录了JDK目录结构的相关文档:

c:\jdk1.6.0\jre\bin: 工具和库所用到的可执行文件和DLL文件。这些可执行文件与/jdk1.6.0/bin中的文件是相同的。

...

需要注意的是,JRE的文件结构与JDK的jre目录相同。

基本上,JRE目录包含了可以随应用程序重新分发的文件(如果您选择这样做)。


请注意检查关于JRE再分发的文件工作。上次我检查时,Sun公司不允许这样做,但那是在Oracle接管之前的事情。 - Tinman

2

我没有任何内部消息,但我发现这在某些情况下很有用。

通常情况下,JDK不会安装在人们的工作站上,只有JRE。我喜欢在我知道与客户端安装的相同的JRE下运行我的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接