我正在使用一些java类在cocoa中开发一个应用程序。我收到错误“JAVA_HOME未正确定义我们无法执行/System/Library/Frameworks/JavaVM.framework/Home/bin/java".I不要知道如何解决这个问题。请任何人帮助我......
提前致谢
答案 0 :(得分:22)
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加载,这将更严重地破坏这些项目。
答案 1 :(得分:2)
将JAVA_HOME
设置为指向.../Home
目录,而不是java
二进制文件。 E.g。
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
为什么要首先设置环境变量?您不应该在OS X上执行此操作...
答案 2 :(得分:1)
在.bashrc文件中,添加以下行:
export JAVA_HOME=/usr
export PATH=$PATH:$JAVA_HOME
这对我有用。
答案 3 :(得分:0)
答案 4 :(得分:0)
有时候更改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
答案 5 :(得分:0)
由于jenv
配置错误(如果已安装),也会发生这种情况。
在~/.bash_profile
中,应该有以下3行:
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
eval "$(jenv enable-plugin export)"
然后通过以下方式重新加载它:source ~/.bash_profile