JAVA_HOME 在 Maven 中不工作
JAVA_HOME is not working in maven
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
要修复它,请更新 JAVA_HOME,如下所示:
$ vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
$ source .bash_profile
运行 再次使用 Maven :
$ mvn -version
挣扎了将近一天后,我发现maven不是从
中读取$JAVA_HOME
~/.bashrc
~/.bash_profile
~/.profile
但它从 ~/.mavenrc
读取 $JAVA_HOME
最后,当我添加
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
在~/.mavenrc
然后得到输出
mvn -v
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: /usr/local/Cellar/maven/3.5.0/libexec
Java version: 1.8.0_141, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/jre
Default locale: en_CA, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"
在 Ubuntu
我遇到了类似的问题。我在 /etc/environment
中配置了 $JAVA_HOME
像 JAVA_HOME=PATH_TO_JDK
例如 JAVA_HOME=/home/max/jdk1.8.0_144
小心
- 白色space路径声明后
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
<- 这是错误的
maven 从 ~/.mavenrc 读取 JAVA_HOME。将 JAVA_HOME 的路径添加到 ~./mavenrc 并获取它。
$vim~/.mavenrc
导出 JAVA_HOME=$(/usr/libexec/java_home)
$ 源.mavenrc
请检查一次应该没有';'在 JAVA_HOME 值中,如果有分号则显示上述错误。
我有
JAVA_HOME
设置但没有 export
它并且 Maven 没有选择正确的 JAVA_HOME
。
一旦我导出 JAVA_HOME
然后它就解决了。不要忘记导出 JAVA_HOME
以便子进程可以使用该变量(UNIX* like OS)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/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
要修复它,请更新 JAVA_HOME,如下所示:
$ vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
$ source .bash_profile
运行 再次使用 Maven :
$ mvn -version
挣扎了将近一天后,我发现maven不是从
中读取$JAVA_HOME
~/.bashrc
~/.bash_profile
~/.profile
但它从 ~/.mavenrc
$JAVA_HOME
最后,当我添加
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home
在~/.mavenrc
然后得到输出
mvn -v
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T15:39:06-04:00)
Maven home: /usr/local/Cellar/maven/3.5.0/libexec
Java version: 1.8.0_141, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home/jre
Default locale: en_CA, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"
在 Ubuntu
我遇到了类似的问题。我在 /etc/environment
中配置了 $JAVA_HOME
像 JAVA_HOME=PATH_TO_JDK
例如 JAVA_HOME=/home/max/jdk1.8.0_144
小心
- 白色space路径声明后
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
<- 这是错误的
maven 从 ~/.mavenrc 读取 JAVA_HOME。将 JAVA_HOME 的路径添加到 ~./mavenrc 并获取它。
$vim~/.mavenrc
导出 JAVA_HOME=$(/usr/libexec/java_home)
$ 源.mavenrc
请检查一次应该没有';'在 JAVA_HOME 值中,如果有分号则显示上述错误。
我有
JAVA_HOME
设置但没有 export
它并且 Maven 没有选择正确的 JAVA_HOME
。
一旦我导出 JAVA_HOME
然后它就解决了。不要忘记导出 JAVA_HOME
以便子进程可以使用该变量(UNIX* like OS)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home