【问题标题】:$JAVA_HOME overwritten, can't use maven$JAVA_HOME 被覆盖,无法使用 maven
【发布时间】:2021-10-19 15:07:42
【问题描述】:

我正在运行 macOS Mojave 10.14.6。我在 ~/.bash_profile 中有以下相关行:

export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home

我的主目录中没有竞争的 .bashrc 文件或其他任何文件。在我上次更新该文件后,我退出并重新打开终端并得到:

...$ echo $JAVA_HOME 
/Users/myusername/.jenv/versions/system
...$ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home
...$ echo $JAVA_HOME
/Users/myusername/.jenv/versions/system

我认为这是由我的 .bash_profile 中的第二行引起的;我不记得为什么要添加它,并且在不知道自己在做什么的情况下犹豫要删除它。我不知道为什么在终端中手动重写变量也不起作用。

无论哪种方式,我的目标是能够在终端中运行 maven,当我这样做时,我得到了

...$ mvn -v
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

知道发生了什么吗?

【问题讨论】:

  • 你用的是什么外壳? Zsh?
  • 您使用的似乎是jenv。为什么不/usr/libexec/java_home
  • 匿名,我正在使用 bash。 @trashgod 你有什么建议?将 .bash_profile 中的一行替换为什么?
  • @FrankHarris:对不起,我不知道jenv;我希望该链接可以帮助您回忆起为什么将其添加到您的个人资料中。我使用java_home 设置$JAVA_HOME 仅在特定可执行文件特别需要时

标签: java macos maven


【解决方案1】:

如果您使用 JEnv 来管理 JDK。然后你必须启用 JEnv 的 maven 插件也启用 Export 插件。不要手动设置JAVA_HOME,JEnv 会为你管理。

运行以下命令并尝试。

jenv enable-plugin export
jenv enable-plugin maven

【讨论】:

    猜你喜欢
    • 2011-01-02
    • 2013-01-14
    • 2019-02-07
    • 2020-04-21
    • 2011-12-13
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多