JDK java 可执行文件与 JRE 可执行文件

JDK java executable vs JRE executable

我将 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 将使用哪个?

java - JAVA_HOME/bin 或 JAVA_HOME/jre/bin.

路径中较早的那个

如果您查看安装了 jdk / jre 的文件夹结构,您会发现在 jdk/bin 文件夹中有相当多的二进制文件集合,例如 java , javac, javap 等。JRE 将包括 java 但不包括 javac, javap 等。我假设这是 linux 并且您下载了压缩档案并将其解压缩。

如果你真的很好奇,你可以把这个写到命令行:

where java

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

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

这是系统默认运行时 java.exe 的软 link(在我的例子中是 C:\Program files\Java\jre 1.8.0_25\bin\java.exe

这里是 JDK 和 JRE

之间差异的简要概述

JRE 表示 JavaRuntimeEnvironment :它只包含二进制文件 运行宁java程序

JDK 表示 JavaDevelopmentKit :它包含运行ning java 程序的二进制文件 + 编译 java 源代码的二进制文件(并生成 java 程序)。

一个JDK里面总是包含一个JRE(目录<JDK_HOME>/jre下)

JRE 和 JDK 之间的主要区别是 javac 程序。 (javac表示javacompiler ) (您还会在 <JDK_HOME>/bin 下找到一些在 <JDK_HOME>/jre/bin 下不存在的其他程序:所有这些程序都可能对 java 开发有用 - 但在大多数情况下 - 对 运行 一个 java 程序。

两个位置(即<JDK_HOME>/bin<JDK_HOME>/jre/bin)中的所有程序都是相同的,因此区分并不是很重要。

准确回答您的问题:java 实例将 运行 当您执行以 [ 开头的命令行时=57=] 是在您的 PATH 系统变量中找到的 java 的第一个实例...就像任何其他程序一样。