JAVA_HOME应该指向JDK而不是JRE。

109

我正在尝试为我的项目设置Maven,但出现了这个错误:

"JAVA_HOME 应该指向JDK而不是JRE"

我知道已经有类似的问题,但那些方法都没有解决我的问题。在windows中如何将JAVA_HOME指向JDK呢?我使用的是IntelliJ IDEA。


2
首先,您需要安装JDK。您已经完成了吗? - Stephen C
请参阅以下链接以了解有关设置Java Home的信息:https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/,另请参阅https://dev59.com/5HE85IYBdhLWcg3wx2f2。 - user180100
你几乎不需要定义JAVA_HOME。 - Klitos Kyriacou
5
我知道已经有类似的问题,但它没有起作用。 == "请对我的问题进行投票反对"(但不要打扰我传达信息的角色;我不会对这个问题进行投票。)如果你尝试了某些方法却无法解决问题,你需要详细说明你尝试了什么方法,预期的行为是什么,实际得到的行为又是什么。 - Mark Adelsberger
2
@KlitosKyriacou - Maven需要设置JAVA_HOME环境变量。 - Steve C
我在容器上遇到了类似的问题,解决方法是找到所有Java的位置,并尝试其他Java_HOME的位置。 - SGuru
26个回答

2

一定要使用正确的路径!

我曾错误地写成了C:\Program Files\Java\。将其更改为C:\Program Files\Java\jdk\11.0.6\后问题得到解决。

然后,在cmd中使用mvn -version命令检查maven版本。


路径也是我的问题。我把JAVA_HOME设置为了C:\Program Files\Java\jdk-11.0.7\bin,而不是C:\Program Files\Java\jdk-11.0.7 - AaronK

1

请确保您没有JRE路径,如果有,请删除它。

  1. 在系统变量中添加JAVA_HOME。变量值:C:\Program Files\Java\jdk-10.0.2(JDK的位置,不包括bin文件夹)
  2. 在系统变量中添加M2。变量值:C:\dev\maven\apache-maven-3.5.4\bin(maven的位置,包括bin文件夹)
  3. 在系统变量中添加M2_HOME。变量值:C:\dev\maven\apache-maven-3.5.4(maven的位置,不包括bin文件夹)
  4. %JAVA_HOME%%M2%添加到Path系统变量中或者添加C:\Program Files\Java\jdk-10.0.2C:\dev\maven\apache-maven-3.5.4\bin-->对于Windows 10,只需添加位置即可。对于其他版本,在变量值字段的末尾添加分号,然后添加位置,例如:;%JAVA_HOME%;%M2%
我没有检查添加或删除bin是否会改变结果,但无论如何这对我有效。

1
请注意,自Maven 3.5.0版本起,M2_HOME的使用已被删除,不再受支持(https://maven.apache.org/docs/3.5.0/release-notes.html)。 - Robert Hume

1
除了 sovas' response关于如何添加JAVA_HOME变量的回答,如果它之前可以正常工作而现在不能工作,确保路径仍然存在。我最近更新了Java,删除了旧版本,使我的JAVA_HOME环境变量失效。

1

这对我有用,适用于Windows 10,Java 8_144。

如果路径中包含空格,请使用缩短的路径名。例如,C:\Progra~1\Java\jdk1.8.0_65


1
如果您遇到以下错误: JAVA_HOME环境变量未正确定义 该环境变量是运行此程序所需的 注意:JAVA_HOME应指向JDK而不是JRE 那么请执行以下操作...输入 C:>dir / x 然后您会看到PROGRA〜1或May〜2 并在更改环境变量之后像这样更改JAVA_HOME Dir JAVA_HOME:- C:\ PROGRA〜1 \ Java \ jdk1.8.0_144 \ 也在路径中设置:-%JAVA_HOME%\ bin; 它可以正常工作

1
在系统变量中添加以下内容。
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_201

JDK_HOME = %JAVA_HOME%\bin

M2_HOME = C:\apache-maven-3.6.0

MAVEN_BIN = %M2_HOME%\bin

MAVEN_HOME = %M2_HOME%

在路径下添加这些。
%M2_HOME%

%JDK_HOME%

1

您只需要将此路径添加到“管理Jenkins” ->“全局工具配置” ->“JDK”中

对于Java 11

/usr/lib/jvm/java-11-openjdk-amd64

对于Java 8

/usr/lib/jvm/java-8-openjdk-amd64

然后在您的Jenkins作业中相应地使用相同的内容。


0
我曾遇到这个问题,但针对Mac OS,我在.bash_profile中设置了JAVA_HOME变量为export JAVA_HOME=$(/usr/libexec/java_home),然后保存。 之后运行source ~/.bash_profile,最后运行mvn -version并解决了问题。希望有所帮助。

0
首先,请确保Maven bin在您的环境变量PATH条目中。
如果是这样,请确保您的条目没有以某种方式失序,并且JAVA_HOME在列表中位于Path之前,或者任何引用%JAVA_HOME%的条目。当我尝试检查我的maven版本时,我也遇到了同样的错误。
我有一些额外的路径变量,它们引用%JAVA_HOME%或不同版本的JDK,而Maven夹杂在其中。我将我的Maven路径条目移动到%JAVA_HOME%下面,现在当我从cmd使用Maven时,一切都正常工作。
但这是Windows,也许只是打开和关闭环境变量设置就可以使一切变得更好。

0

只需删除JAVA_HOME变量值末尾的分号即可。

set JAVA_HOME as C:\Program Files\Java\jdk1.8.0_171

这对我有用。


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