JDK Java可执行文件与JRE可执行文件的区别

4
我将Oracle JDK安装到了/usr/jdk/jdk1.8.0_25,并将该目录设置为JAVA_HOME。 JAVA_HOME/bin包含java可执行文件,JAVA_HOME/jre/bin包含另一个java可执行文件。 我遵循的指南说要将JAVA_HOME/bin和JAVA_HOME/jre/bin添加到PATH中,但哪个才是正确的可执行文件,并且如果我从命令行调用java,哪个可执行文件将被使用?

3个回答

6
这里是JDK和JRE之间差异的简化概述:
JRE代表Java Runtime Environment,它只包含运行Java程序所需的二进制文件。
JDK代表Java Development Kit,它包含用于运行Java程序的二进制文件以及编译Java源代码(并生成Java程序)的二进制文件。
JDK始终包含一个JRE(位于目录/jre下)。
JRE和JDK之间的主要区别在于javac程序(javac表示java编译器)。您还可以在/bin下找到一些其他程序,在/jre/bin下不存在这些程序:所有这些程序都可能对Java开发有用,但在大多数情况下,对运行Java程序没有用处。
两个位置中都存在的所有程序(即/bin和/jre/bin)是相同的,因此区分它们并不是非常重要。
为了准确回答您的问题:当您执行以java开头的命令行时,将运行找到的第一个java实例,该实例位于您的PATH系统变量中...就像任何其他程序一样。

0

如果你真的很好奇,你可以在命令行中写入:

where java

这将给出可执行文件的确切位置。在我的电脑上,这会给我:

C:\ProgramData\Oracle\Java\javapath\java.exe

这是系统默认运行时的软链接 java.exe(在我的情况下是 C:\Program files\Java\jre 1.8.0_25\bin\java.exe


0
无论是JAVA_HOME/bin还是JAVA_HOME/jre/bin路径中较早的那个。
如果您查看安装jdk/jre的文件夹结构,您会发现在jdk/bin文件夹中有许多二进制文件,例如java、javac、javap等。JRE将包括java,但不包括javac、javap等。我假设这是Linux,并且您下载了压缩的存档并提取了它。

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