bin文件夹中的java.exe和JRE中的java.exe有什么区别?(涉及IT技术)

18

我刚接触Java,有一个疑惑,哪个解释器用于执行Java程序,因为我看到两个java.exe文件,一个在bin文件夹内,另一个在JRE的bin文件夹内。

我想添加一些细节来澄清我的问题:

假设Java安装在C:\Program Files\Java\Jdk1.6中。现在,在该目录下有jre文件夹、bin文件夹和其他文件夹,但我们集中讨论这两个文件夹。..\jre\bin文件夹包含java.exe文件,..\bin文件夹也包含java.exe文件。那么,我的疑问是:哪个Java解释器用于执行Java程序?


我建议为JDK / bin设置类路径,而不是JRE / bin;如果您已安装JDK。两个java.exe都可以为您完成相同的工作,但JDK具有更多用于Java开发的可执行文件,例如javac.exe。 - Kanagavelu Sugumar
7个回答

9

来自Java SE安装说明:

http://www.oracle.com/technetwork/java/javase/documentation/install-windows-142126.html#private

安装JDK会安装一个私有的Java SE运行时环境(JRE),并且可以选择安装公共副本。私有JRE用于运行JDK附带的工具,它没有注册表设置,完全包含在jre目录中(通常位于C:\Program Files\jdk1.6.0\jre),其位置仅JDK知道。另一方面,公共JRE可供其他Java应用程序使用,包含在JDK之外(通常位于C:\Program Files\Java\jre1.6.0),已在Windows注册表(HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft)中注册,可以使用添加/删除程序进行删除,可能已注册或未注册浏览器,并且可能已将java.exe复制到Windows系统目录中(使其成为默认的系统Java平台或不是)。因此,我认为在执行Java程序时应从/bin目录中使用可执行文件。

1
JRE:Java Runtime Environment。基本上是Java虚拟机,你的Java程序在上面运行。还包括用于Applet执行的浏览器插件。
JDK:Java的完整功能软件开发工具包,包括JRE以及用于创建和编译程序的编译器和工具(如JavaDoc和Java Debugger)。
通常,当你只关心在浏览器或计算机上运行Java程序时,只需要安装JRE。这就是你所需的全部。另一方面,如果你计划做一些Java编程,你还需要JDK。
有时,即使你没有计划在计算机上进行任何Java开发,你仍然需要安装JDK。例如,如果你使用JSP部署Web应用程序,实际上只是在应用服务器内运行Java程序。那么为什么还需要JDK呢?因为应用服务器会将JSP转换为Servlet,并使用JDK编译Servlet。我相信还可能有更多的例子。

1
谢谢您的回复。但这不是我想知道的。让我更详细地解释一下......假设Java安装在C:\ Program Files \ Java \ Jdk1.6中。现在,在此目录中,有jre文件夹、bin文件夹和其他文件夹,但让我们集中在这两个文件夹上。这个..\jre\bin文件夹包含java.exe和..\bin文件夹也包含java.exe。所以,我的问题是使用哪个Java解释器来执行Java程序。我希望这能帮助您更好地理解我的问题。 - anshul

1

检查java.home属性。它应该指向其中之一。在这里我得到..

Name        Value
java.home   C:\Program Files\Java\jre6

1
请检查您的 java.exe 文件的文件大小和文件日期。它们应该相同。
在我看来,JDK 是 JRE 的一种超集。因此,如果您需要进一步的构建或编译工具,可以选择 JDK。否则您可以使用 JRE。

0
据我所知,除了jdk和jre的目的不同之外,它们之间没有任何区别两个java.exe文件是相同的

0

如果您已经安装了JRE,则java.exe应该在这里 C:\ Program Files \ Java \ jre6 \ bin

如果您已经安装了JDK,则java.exe将出现在两个位置: C:\ Program Files \ Java \ jdk1.6.0_25 \ bin C:\ Program Files \ Java \ jdk1.6.0_25 \ jre \ bin

如果您同时安装了jdk和jre,则可以将C:\ Program Files \ Java \ jdk1.6.0_25 \ jre与C:\ Program Files \ Java \ jre6 \ bin进行比较,它们几乎完全相同,您可以从任何一个中使用java.exe,但我认为大多数人会使用C:\ Program Files \ Java \ jdk1.6.0_25 \ bin中的那个。


@Daniel 不,这是错误的。如果你不相信我,你需要从Oracle下载最新的JRE并安装它,这样你就可以看到它的作用了。 - Jason Wheeler
但是如果你下载JDK,那就是错误的,我认为每个人都会在这里使用。 - Daniel
当他第一次提出这个问题时,似乎他在谈论JRE,我修改了答案以包括JDK。 - Jason Wheeler
在这种情况下,我可以同意。 - Daniel

0

根据您提供的路径,我猜您在使用Windows系统。

现在,您使用的是哪个java.exe呢?

这取决于您正在执行什么操作。如果您正在运行一个小程序、一个jar包或者Java Web Start,那么您将使用由您的PATH环境变量指向的bin目录中的java.exe。此外,如果您打开控制台并执行java,则会运行由您的'PATH'变量指向的java.exe。 如果您正在运行一个.bat文件,请检查是否使用了不同的环境变量。通常使用JAVA_HOMEJAVA_SDK


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