JAVA_HOME不在maven中工作

时间:2017-07-21 06:04:29

标签: maven terminal java-home

java安装在此路径

$ which java
/usr/bin/java

mvn -version正在提供此错误

$ mvn -version
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

我尝试了一些在线提供的解决方案,但那些不适合我的方案。其中一些解决方案建议添加

$export JAVA_HOME = /usr/libexec/java_home 

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

到下面的文件

~/.bashrc
~/.bash_profile
~/.profile

当我尝试执行一个shell命令时,它会显示错误,如

Error: JAVA_HOME is not defined correctly.
 CARBON cannot execute /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java

6 个答案:

答案 0 :(得分:25)

经过近一天的挣扎,我发现maven没有从$JAVA_HOME读取

 ~/.bashrc
 ~/.bash_profile
 ~/.profile

但它从$JAVA_HOME

中读取~.mavenrc

所以最后,当我添加

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
在<{1}}中

然后获得输出

~.mavenrc

答案 1 :(得分:8)

要修复它,请更新JAVA_HOME,如下所示:

$ vim .bash_profile

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

$ source .bash_profile

再次运行Maven:

$ mvn -version

答案 2 :(得分:6)

maven从〜/ .mavenrc读取JAVA_HOME。将JAVA_HOME的路径添加到〜。/ mavenrc并获取它。

$ vim〜/ .mavenrc

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

$ source .mavenrc

答案 3 :(得分:1)

在Ubuntu上 我遇到了类似的问题。我在$JAVA_HOME中配置了/etc/environment 比如$JAVA_HOME=PATH_TO_JDK,例如$JAVA_HOME=/home/max/jdk1.8.0_144

小心

  • 路径声明后的空格$JAVA_HOME=/home/max/jdk1.8.0_144[[_NO_WHITE_SPACE_AFTER_DECLARATION]]
  • 不要放任何双撇号$JAVA_HOME="/home/max/jdk1.8.0_144"
  • 不要把/ bin例如$JAVA_HOME=/home/max/jdk1.8.0_144/bin&lt; - 这是错误的

答案 4 :(得分:1)

请检查是否不应包含“;”在JAVA_HOME值中,如果有分号,则将显示以上错误。

答案 5 :(得分:0)

我有

<块引用>

JAVA_HOME

设置但没有export它并且maven没有选择正确的JAVA_HOME

一旦我导出 JAVA_HOME 就解决了。不要忘记导出 JAVA_HOME 以便变量可用于子进程(类 UNIX* 操作系统)

export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home