JAVA_HOME应该指向JDK而不是JRE

时间:2017-04-19 12:47:34

标签: java maven intellij-idea

我正在尝试为我的项目设置maven,我收到此错误

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

我知道已有类似的问题,但它没有用。如何在Windows中将JAVA_HOME指向JDK。我正在使用IntelliJ IDEA

24 个答案:

答案 0 :(得分:37)

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

enter image description here

答案 1 :(得分:24)

我在Mac OSX上经历了相同的过程。我安装了最新的JDK,然后安装了Maven。有人建议我设置JAVA_HOME变量,所以我将其指向JDK安装文件夹。运行Maven时mvn compile exec:java我收到了同样的错误NB: JAVA_HOME should point to a JDK not a JRE

我所做的只是取消了JAVA_HOME变量并且它有效。

答案 2 :(得分:6)

通过cmd做到这一点 -

  

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

答案 3 :(得分:2)

在Mac OS中,层次结构库> Java> JavaVirtualMachines-(在此文件夹中有不同版本的jdk)选择所需的版本,并且在jdk-version文件夹中有一个内容文件夹,您将在其中找到“主”文件夹 在声明$ JAVA_HOME时,例如,您必须给出该主路径-

(普通的shell命令) 打开终端类型vi .bash_profile (打开文件名bash_profile) 按“ i”启用插入模式 将Java主路径指定为-

ETF_LAR

编辑后按esc退出编辑模式 然后:wq退出并保存

这将删除JAVA_HOME应该指向一个JDK而不是一个JRE错误 并避免将来出现错误

答案 4 :(得分:1)

如果你有 未正确定义JAVA_HOME环境变量 运行此程序需要此环境变量 注意:JAVA_HOME应该指向JDK而不是JRE 错误  做一件事......打字 C:> DIR / X 你会看到PROGRA~1或May~2 和int环境变量之后JAVA_HOME Dir喜欢这个 JAVA_HOME: - C:\ PROGRA~1 \ Java \ jdk1.8.0_144 \ 也设置在路径中: - %JAVA_HOME%\ bin; 它的工作原理

答案 5 :(得分:1)

我遇到了同样的问题。 (Window 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目录。

答案 6 :(得分:1)

我花了3个小时来解决错误JAVA_HOME环境变量未正确定义。要运行此程序,需要此环境变量注意:JAVA_HOME应该指向JDK而不是JRE

最后我找到了解决方案。请通过JAVA_HOME按钮/选项设置Browse Directory值。尝试找到jdk路径。例如:C:\Program Files\Java\jdk1.8.0_181

它将消除分号问题。 :D documentation

答案 7 :(得分:1)

我的JAVA_HOME设置正确,但我通过Command Prompt as Administrator

解决了此问题

答案 8 :(得分:1)

我在用户变量中添加了JAVA_HOME路径,并省略了“ / bin”。  我尝试了这里给出的所有方法,但只有这种方法对我有用。

答案 9 :(得分:0)

就我而言,当 Java 版本更新时,错误开始出现。所以JAVA_HOME路径失效了。

请检查

  1. JAVA_HOME 中引用的位置存在。
  2. 如果和我的情况一样,请将值从旧路径更新到新路径。

(更好的解决方法是设置 java 更新,使其自动升级 JAVA_HOME 引用。)

答案 10 :(得分:0)

作为对其他答案的补充

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

答案 11 :(得分:0)

对于Mac OS,这对我有用...以上解决方案都不是

$ vim .bash_profile

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

$ source .bash_profile

答案 12 :(得分:0)

请确保使用正确的路径!

我错误地写了C:\Program Files\Java\。将其更改为C:\Program Files\Java\jdk\11.0.6\可解决此问题。

然后在cmd中用maven检查mvn -version的版本。

答案 13 :(得分:0)

首先,确保Maven bin位于您的环境变量PATH条目中。

如果是这样,请确保您的条目没有以某种方式乱序,并且JAVA_HOME在列表中的Path之前,或任何引用%JAVA_HOME%的条目。尝试检查Maven版本时遇到相同的错误。

我还有一些引用%JAVA_HOME%的额外路径变量,或者在两者之间混合了JDK和Maven的不同版本。我将Maven路径条目移到了%JAVA_HOME%的下面,现在当我从cmd使用Maven时一切正常。

但是它是Windows,所以也许我刚刚打开和关闭Environment Variables设置可以使一切变得更好。

答案 14 :(得分:0)

适用于我的Windows 10 Home:

我正在通过粗体课程学习Maven。第一次环境变量还可以。我在JAVA_HOME上的SYSTEM VARIABLE上是这样的:

D:\ Install \ Java \ jdk-12.0.1; D:\ Install \ apache-maven-3.5.4-bin \ apache-maven-3.5.4


几天后,不知道发生了什么,我开始收到:

C:\ Users \ Franco> mvn -version

JAVA_HOME环境变量未正确定义

运行此程序需要此环境变量

注意:JAVA_HOME应该指向JDK而不是JRE


尝试了所有上述操作之后,我尝试删除jdk系统变量上的条目,并将其放在用户变量上,所以现在我有了:

用户变量上的JAVA_HOME:D:\ Install \ Java \ jdk-12.0.1

系统变量上的JAVA_HOME:D:\ Install \ apache-maven-3.5.4-bin \ apache-maven-3.5.4

现在重启我的CMD:

C:\ Users \ Franco> mvn -version

Apache Maven 3.5.4(1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T20:33:14 + 02:00)

Maven主页:D:\ Install \ apache-maven-3.5.4-bin \ apache-maven-3.5.4 \ bin ..

Java版本:12.0.1,供应商:Oracle Corporation,运行时:D:\ Install \ Java \ jdk-12.0.1

默认语言环境:en_US,平台编码:Cp1252

操作系统名称:“ windows 10”,版本:“ 10.0”,拱门:“ amd64”,家族:“ windows”

答案 15 :(得分:0)

This worked for me(对于Windows 10,Java 8_144)。

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

答案 16 :(得分:0)

在系统变量下添加以下内容

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%

答案 17 :(得分:0)

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

答案 18 :(得分:0)

除了在{em>如何上添加JAVA_HOME的{​​{3}}之外,如果变量在以前工作并且停止工作,请确保路径仍然存在。我最近更新了Java,该Java删除了旧版本,使我的JAVA_HOME环境变量无效。

答案 19 :(得分:0)

如果已删除,请确保没有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(带有bin的maven的位置)
  3. 在系统变量中添加M2_HOME。变量值:C:\dev\maven\apache-maven-3.5.4(没有bin的Maven的位置)
  4. 在路径系统变量中添加%JAVA_HOME%%M2%C:\Program Files\Java\jdk-10.0.2C:\dev\maven\apache-maven-3.5.4\bin->对于Windows 10,只需添加位置即可。对于其他版本,在“变量值”字段的末尾添加分号,然后添加位置Ex:;%JAVA_HOME%;%M2%

我没有检查bin的添加或删除是否会改变结果,但这仍然对我有用。

答案 20 :(得分:0)

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

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

它对我有用。

答案 21 :(得分:0)

在User变量中添加JAVA_HOME = C:\Program Files\Java\jdk(version),它适用于我。对我来说,它不适用于bin,即使我在系统变量

中创建JAVA_HOME

答案 22 :(得分:0)

在IntelliJ IDEA中转到File>Project Structure>SDK>JDK home path。 复制它然后转到 My Computer>Advanced Settings>Environment Variables 将JAVA_HOME路径更改为您复制的路径。 然后打开新的cmd,然后尝试mvn -v

它对我有用!!!

答案 23 :(得分:-1)

假定Java JDK安装在C:\ Windows \ System32中,请将此目录添加到您的 Path 环境变量中,并且该目录应该可以工作