【问题标题】:How do I fix Error: JAVA_HOME is not defined correctly. We cannot execute /usr/libexec/java_home/bin/java?如何修复错误:未正确定义 JAVA_HOME。我们无法执行 /usr/libexec/java_home/bin/java?
【发布时间】:2018-07-11 13:52:19
【问题描述】:

我查看了与错误相关的每个 stackoverflow 问题:

Error: JAVA_HOME is not defined correctly.
  We cannot execute /usr/libexec/java_home/bin/java

仍然无法修复它。

我一直在使用 Java 8,但现在我必须将 Java 6 用于不同的项目。我觉得 Java 8 的一些设置造成了这个问题。

我当前的 .bash_profile 是:

export JAVA_HOME=$(/usr/libexec/java_home)
# export JAVA_HOME=`/usr/libexec/java_home`
# echo export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home
# echo export PATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

尝试执行:

/develop/tools/apache-maven-3.2.5/bin/mvn eclipse:clean eclipse:eclipse -P ut -f /develop/projects/mynavi.wedding/source/pom.xml

有什么建议吗?

【问题讨论】:

  • 检查权限,可能你要chmod +x这个可执行文件。
  • 您使用的是 Linux 还是 MacOS?
  • 我使用的是 Mac。 @CoderinoJavarino chmod /develop/tools/apache-maven-3.2.5/bin/mvn eclipse:clean eclipse:eclipse -P ut -f /develop/projects/mynavi.wedding/source/pom.xml ?
  • 尝试在命令行上运行/usr/libexec/java_home。它打印什么?
  • @DodgyCodeException 我得到 /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home 所以它可能指向错误的路径,但 dont know how to fix that. Ive 确保 Java 6 存在于Java_Home 路径。

标签: java macos shell


【解决方案1】:

你可以试试:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

然后测试:

java -version

假设您已安装 Java 1.6,并且您的路径设置应该如下所示:

Java(TM) SE 运行时环境(内部版本 1.6.0_65-b14-468-11M4833)

Java HotSpot(TM) 64 位服务器 VM(内部版本 20.65-b04-468,混合模式)

【讨论】:

  • 我得到 Java 版本:1.8.0_152,供应商:Oracle Corporation Java 主页:/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home/jre
  • 好的。也许我应该从头开始。在终端中执行/usr/libexec/java_home -v 1.6 命令会得到什么?
  • 谢谢!!我得到 /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
  • 好的,很好。你从命令echo $PATH得到什么?
  • 我得到 /usr/local:/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/jre/bin:/usr/local/bin:/usr/bin:/bin :/usr/sbin:/sbin:/Users/blazesmith/visitors
【解决方案2】:

以下内容已在我的 mac 上测试过:

export JAVA_HOME="`/usr/libexec/java_home`"

【讨论】:

  • 尝试在命令行上执行/usr/libexec/java_home 并检查输出。您应该将输出分配给 JAVA_HOME 变量。
  • 仍然无法正常工作...我得到 /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home
  • 您应该首先在您的 mac 上找到 Java 6 运行时(libexec 正在向您显示 java 8 主页)。找到后,将运行时的Contents/Home 文件夹设置为 JAVA_HOME。
  • 您是说在我的 .bash_profile 中执行 export JAVA_HOME=$(/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home) 正确吗?试过了,我得到 -bash: /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home: is a directory
猜你喜欢
  • 2015-03-20
  • 2022-10-13
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
  • 2021-12-27
相关资源
最近更新 更多