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
答案 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"
$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