【问题标题】:JDK java executable vs JRE executableJDK java 可执行文件与 JRE 可执行文件
【发布时间】:2015-02-28 08:03:02
【问题描述】:

我将 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


【解决方案1】:

这里是JDK和JRE区别的简化概述

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

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

JDK 内部总是包含一个 JRE(在目录 <JDK_HOME>/jre 下)

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

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

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

【讨论】:

    【解决方案2】:

    java 路径中较早的部分 - JAVA_HOME/bin 或 JAVA_HOME/jre/bin。

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

    【讨论】:

      【解决方案3】:

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

      where java
      

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-01-16
        • 2012-05-04
        • 2014-06-03
        • 2015-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-29
        相关资源
        最近更新 更多