JAVA_HOME 应该指向 JDK 还是 JRE?

Posted

技术标签:

【中文标题】JAVA_HOME 应该指向 JDK 还是 JRE?【英文标题】:Should JAVA_HOME point to JDK or JRE? 【发布时间】:2013-07-10 05:22:06 【问题描述】:

我将JAVA_HOME 指向C:\Program Files (x86)\Java\jre7。它工作正常。之后解压ant并设置Ant相关的环境变量,输入"ant -version"后出现如下错误提示

我搜索了这个论坛。看起来一种解决方案是将 Java 指向 JDK 而不是 JRE。我不确定这是否应该是解决方案。换句话说,一般来说,JAVA_HOME应该指向哪一个呢? JDK还是JRE?

【问题讨论】:

【参考方案1】:

我的 JAVA_HOME 指向 JDK。如果仍然无法正常工作,请检查您是否下载了 Java 7 的 ant 而不是 Java 6 的。

【讨论】:

【参考方案2】:

一般来说,指向 JRE 或 JDK 都没有关系。这取决于使用它的应用程序。 Ant 文档说您应该将它指向 JDK 以获取所有 Ant 的功能。

【讨论】:

【参考方案3】:

作为开发人员,您应该将您的 JAVA_HOME 指向 jdk 以访问 javac 编译器等。如果您可以测试您的程序以在 JRE 上运行,那就太好了。如果您使用的是应用服务器,您通常还需要 JDK 而不是 JRE,但这取决于特定的服务器。

【讨论】:

【参考方案4】:

如果您要进行任何类型的开发,或者使用 Maven 或 Ant 进行构建,您需要指向诸如 javac(Java 编译器)之类的实用程序所在的 JDK(Java 开发工具包)。否则,您可以指向 JRE(Java 运行时环境)。

JDK 包含 JRE 所拥有的一切以及更多。如果您只是在执行 Java 程序,则可以指向 JRE 或 JDK。

【讨论】:

所以JAVA_HOME是用来做两件事的:1:对于开发工具,找到javac.exe。 2:对于非开发工具,找到java.exe。这似乎违反了"one tool for one thing"。不应该用JDK_HOME 代替吗? 这个站点上的图显示了JDK和JRE之间的关系。 docs.oracle.com/javase/8/docs 是否可以通过程序验证 Java 路径是设置为 JRE 还是 JDK? 所以它必须指向javac所在的bin目录?【参考方案5】:

您可以使用 JDK 或 JRE,但是:

JAVA_HOME 由启动器用于查找要使用的 JDK/JRE。 (推荐使用JDK,因为有些任务需要java工具。)
。 ANT_HOME setting

【讨论】:

【参考方案6】:

只需(更改为您的 jdk1.x.x.x_xx)

JAVA_HOME=C:\Program Files\Java\jdk1.8.0_05

【讨论】:

这个目录下没有javac.exe(在bin下),这怎么可能是正确的? 在 Mac 上怎么样?【参考方案7】:

让我们保持简单。转到设置并搜索“环境变量”。弹出环境变量窗口后,只需单击新建创建一个新的 SYSTEM 变量,然后单击 BROWSE DIRECTORY,直到找到 JDK 的安装路径。 JDK应该安装在程序文件中,你会看到一个JAVA文件夹,文件夹里面是JDK和JRE...如果你写代码你必须选择JDK!不要听任何人说 JRE 就足够了……不!它不会!正确的目录应该像这样 C:\Program Files\Java\jdk1.8.0_144 就这么简单!

【讨论】:

@Stephan 现有的答案已经提供了我花时间提供的信息。这就是你投反对票的理由吗?这是许多这些线程的问题。一方面,仅仅因为基本原则得到了回答,并不意味着答案是正确的,甚至是有帮助的。我的回答和之前的回答完全不一样。我提供的答案带有精确的说明【参考方案8】:

对于迟到并现在学习它的人来说,现在没关系,因为新的 JDK 版本没有单独的 JRE 文件夹。所以,我们可以指向JDK并完成它。

【讨论】:

以上是关于JAVA_HOME 应该指向 JDK 还是 JRE?的主要内容,如果未能解决你的问题,请参考以下文章

Maven中的Java_home

为啥我的电脑安装了jdk,里面没有jre

安装Oracle数据库,已经配置了JRE和JDK,在CMD中输入JAVAC也有显示,可安装时还是提示没有JAVA环境

linux下的jdk环境配置

在安装idel的jdk的时候报 Error:NB:JAVA_HOME should point to a JDK not a JRE

如何配置jdk和jre的环境变量