JAVA_HOME应该指向JDK还是JRE?


102

我指出了JAVA_HOMEC:\Program Files (x86)\Java\jre7。它工作正常。之后,我解压缩了ant并设置了与Ant有关的环境变量,键入后出现了以下错误消息"ant -version"

图片

我搜索了这个论坛。似乎一种解决方案是将Java指向JDK而不是JRE。我不确定这是否是解决方案。换句话说,JAVA_HOME通常应指向哪个?JDK还是JRE?

Answers:


121

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

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


7
所以JAVA_HOME习惯做两件事:1:对于开发工具来说,寻找javac.exe。2:对于非开发工具,查找java.exe。这似乎违反了“一件工具只能做一件事情”。不JDK_HOME应该使用它吗?
Pacerier's

4
该站点上的图显示了JDK和JRE之间的关系。docs.oracle.com/javase/8/docs
andrybak

1
是否可以通过编程方式验证Java路径是设置为JRE还是JDK?
Dinesh Kumar P

9

简单地(更改为您的jdk1.xxx_xx)

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


6

我的JAVA_HOME指向JDK。如果仍然无法使用,请检查是否为Java 7而不是Java 6下载了ant。



2

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


2

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

启动器使用JAVA_HOME查找要使用的JDK / JRE。(建议使用JDK,因为某些任务需要Java工具。)
ANT_HOME设置


0

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


2
@Stephan现有的答案已经提供了我花时间提供的信息。那是您拒绝投票的理由吗?这是许多这些线程的问题。首先,仅仅回答了基本原理并不意味着答案是正确的,甚至没有帮助。我的答案与以前的回答完全不同。我提供的答案带有精确的说明
nexogen.io 18-10-26
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.