【发布时间】:2010-01-27 09:29:48
【问题描述】:
我正在使用一些 java 类的可可开发应用程序。我收到错误“JAVA_HOME 未正确定义我们无法执行 /System/Library/Frameworks/JavaVM.framework/Home/bin/java”。我没有知道如何解决这个问题..请任何人帮助我..
提前致谢
【问题讨论】:
我正在使用一些 java 类的可可开发应用程序。我收到错误“JAVA_HOME 未正确定义我们无法执行 /System/Library/Frameworks/JavaVM.framework/Home/bin/java”。我没有知道如何解决这个问题..请任何人帮助我..
提前致谢
【问题讨论】:
export JAVA_HOME=`/usr/libexec/java_home` is exactly what you want to do.
事实上,硬编码 /System/Library/Frameworks/JavaVM.framework/Versions/... 的所有 Apache 项目(实际上是任何项目)都需要使用 /usr/libexec/java_home(如果存在)。这是您知道是否实际安装了 Java 的唯一方法。
在未来的某个时候,/System/Library/Frameworks/JavaVM.framework/Versions/ 中的符号链接将消失,如果他们想使用 Oracle/OpenJDK JVM 加载这些项目,这将更加严重地破坏这些项目。
【讨论】:
将JAVA_HOME 设置为指向.../Home 目录,而不是java 二进制文件。例如
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
为什么首先要设置环境变量?您不必在 OS X 上执行此操作...
【讨论】:
在您的 .bashrc 文件中,添加以下行:
export JAVA_HOME=/usr
export PATH=$PATH:$JAVA_HOME
这对我有用。
【讨论】:
将以下行添加到~/.mavenrc 文件中
export JAVA_HOME=$(/usr/libexec/java_home)
【讨论】:
有时更改 Java_HOME 并没有帮助,因为在 apache ant 脚本中 java_home 是硬编码的。 如果你修改了 JAVA_HOME 后仍然无法运行 ant,你可以尝试在 ant 脚本中将默认的硬编码更改为你的 JAVA_HOME,如:
$ vi /Users/apache-ant-1.8.3/bin/ant
#ant from line 83 to 93
case "`uname`" in
CYGWIN*) cygwin=true ;;
Darwin*) darwin=true
if [ -z "$JAVA_HOME" ] ; then
#delete JAVA_HOME=XXXXX(default line) , and give JAVA_HOME ur java home url
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
fi
;;
MINGW*) mingw=true ;;
esac
【讨论】:
如果安装了错误的jenv,也可能发生这种情况。
在~/.bash_profile中,应该有这3行:
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
eval "$(jenv enable-plugin export)"
然后通过以下方式重新加载它:source ~/.bash_profile
【讨论】: