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个回答

93

控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建系统变量

在此输入图片描述


64
对我来说,重要的是注意路径中不应包含 bin - wake-0
3
非常感谢,我一直犯了这个错误,把bin目录包含进去了,在尝试使用“mvn clean install”构建项目时导致了maven错误。 - Rajan Chauhan
在Ubuntu 18.04中,您可以通过设置环境变量来实现类似的操作:export JAVA_HOME='/usr/lib/jvm/java-11-openjdk-amd64',这是我安装在我的计算机上的JDK示例。请将其替换为您自己的路径。 - Pablo Adames

47

我正在Mac OSX上进行相同的过程。首先安装了最新的JDK,然后安装了Maven。有人建议我设置JAVA_HOME变量,于是我将其指向JDK安装文件夹。当运行Mavenmvn compile exec:java时,我收到了相同的错误NB: JAVA_HOME应该指向JDK而不是JRE

我所做的就是取消JAVA_HOME变量的设置,然后它就可以正常工作了。


2
该死,这里还是不行,我又得到了同样的错误。 - Hakanai
在这里也工作过,尽管将JAVA_HOME设置为我预期的内容,但仍然无法正常工作。 - TextGeek
1
太棒了!要取消设置,我执行了:unset JAVA_HOME。然后通过vi ~/.bash_profile命令打开文件,并添加export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home"。请确保在您的MAC上更改实际路径。 - Gilo
在 Ubuntu 20.04 中工作过。 - Naveen Kumar

11

我遇到了同样的问题(Windows 10环境)。我通过在用户变量中删除JAVA_HOME="C:\Program Files\Java\jdk1.8.0_161\bin"而不是直接将其添加到系统变量来解决它。

然后我测试了一下,编辑JAVA_HOME="C:\Program Files\Java\jdk1.8.0_161\"也可以解决问题。当我在命令提示窗口运行"mvn -version"时,它显示"Java home: C:\Program Files\Java\jdk1.8.0_161\jre"。

总之,我猜JAVA_HOME不应该包含bin目录。


2
这是我的解决方案。我在用户变量中有一个先前的JAVA_HOME条目,将其删除后问题得到解决。 - Joe Jordan

10

通过命令提示符完成 -

echo %JAVA_HOME% 设置 JAVA_HOME=C:\Program Files\Java\jdk1.8.0 echo %JAVA_HOME%


7

我在用户变量中添加了JAVA_HOME路径,省略了"/bin"。我尝试了这里提供的所有方法,但只有这个方法对我有效。


5

我的JAVA_HOME已正确设置,但我通过以管理员身份运行命令提示符来解决了此问题。


5
我花费了3个小时来解决这个错误,JAVA_HOME环境变量未正确定义。此环境变量需要运行此程序。请注意: JAVA_HOME应该指向JDK而不是 JRE。
最终我找到了解决方案。请通过“浏览目录”按钮/选项设置JAVA_HOME的值。尝试查找jdk路径。例如:C:\Program Files\Java\jdk1.8.0_181 它将解决分号问题。 :D 浏览目录选项

4
在Mac OS中,层次结构为Library > java > JavaVirtualMachines - 在这个文件夹中有不同版本的jdk,请选择您想要的版本,在jdk-version文件夹内部有一个contents文件夹,在其中您会找到"Home"文件夹。在声明$JAVA_HOME时,您必须提供该Home路径,例如 -
(正常的shell命令) 打开终端,输入 vi .bash_profile (打开文件名为bash_profile的文件) 按“i”键以启用插入模式 将java home路径设置为 -
export JAVA_HOME=/Library/java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home 编辑后按esc退出编辑模式 然后:wq退出并保存
这将消除JAVA_HOME应该指向JDK而不是JRE的错误,并且可以使您免受未来错误的困扰。

2
它在2021年的Mac OS Big Sur上仍然可以使用。感谢您的评论。 - Sankalp

4

对于 Mac OS,这对我有效……以上解决方案都无法奏效。

$ vim .bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)

$ source .bash_profile

2

作为其他答案的补充

对于 macOS 用户,您可能有一个 ~/.mavenrc 文件,mvn 命令首先会在该文件中查找 JAVA_HOME 的定义。因此,请首先检查该文件,并确保 JAVA_HOME 指向的目录是正确的。


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