【问题标题】:JAVA_HOME is not defined correctly Error while compilingJAVA_HOME 未正确定义 编译时出错
【发布时间】:2010-01-27 09:29:48
【问题描述】:

我正在使用一些 java 类的可可开发应用程序。我收到错误“JAVA_HOME 未正确定义我们无法执行 /System/Library/Frameworks/JavaVM.framework/Home/bin/java”。我没有知道如何解决这个问题..请任何人帮助我..

提前致谢

【问题讨论】:

    标签: java cocoa macos


    【解决方案1】:
    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 加载这些项目,这将更加严重地破坏这些项目。

    【讨论】:

    • 非常感谢 :) 你知道为什么不能使用双引号/直引号吗?
    • 这会在重启之间持续存在吗?
    【解决方案2】:

    JAVA_HOME 设置为指向.../Home 目录,而不是java 二进制文件。例如

    export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
    

    为什么首先要设置环境变量?您不必在 OS X 上执行此操作...

    【讨论】:

    • 这是必需的,例如在运行 ant 构建脚本时。
    【解决方案3】:

    在您的 .bashrc 文件中,添加以下行:

    export JAVA_HOME=/usr
    export PATH=$PATH:$JAVA_HOME
    

    这对我有用。

    【讨论】:

      【解决方案4】:

      将以下行添加到~/.mavenrc 文件中

      export JAVA_HOME=$(/usr/libexec/java_home)
      

      参考:Maven ignoring JAVA_HOME on OSX?

      【讨论】:

        【解决方案5】:

        有时更改 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
        

        【讨论】:

          【解决方案6】:

          如果安装了错误的jenv,也可能发生这种情况。

          ~/.bash_profile中,应该有这3行:

          export PATH="$HOME/.jenv/bin:$PATH"
          eval "$(jenv init -)"
          eval "$(jenv enable-plugin export)"
          

          然后通过以下方式重新加载它:source ~/.bash_profile

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-02-14
            • 2015-02-03
            相关资源
            最近更新 更多