Jam*_*hon 4 macos openjdk build javac buildr
我遇到了Apache的Buildr抱怨源代码无效的问题.每当我尝试构建我的项目时,我都会收到以下错误消息;
javac: invalid source release: 1.7
Usage: javac <options> <source files>
use -help for a list of possible options
Buildr aborted!
RuntimeError : Failed to compile, see errors above
Run Code Online (Sandbox Code Playgroud)
我会假设我的系统上没有安装Java 7,但是当我执行时,javac -version我得到了javac 1.7.0-u10-b08,这就是我刚刚安装的OpenJDK.
这里发生了什么?我的第一个猜测是Buildr运行的是错误的Java版本,但我不知道如何修复或确认.
为了给出这个问题的一些背景知识,我正在运行Mac OS X版本8(Mountain Lion)并安装了来自http://code.google.com/p/openjdk-osx-build/的OpenJDK .我正在使用RVM来管理Ruby并使用env JAVA_HOME=$JAVA_HOME gem install buildr文档中的建议使用Buildr .我的JAVA_HOME设置为/Library/Java/JavaVirtualMachines/1.7.0u.jdk/Contents/Home,这是我安装OpenJDK的地方.
如果有人能在这里帮助我,我会非常感激.
更新: 看起来Buildr真的不尊重我的JAVA_HOME.我进入并取消选中Java Preferences中Java的系统版本(版本6),现在我得到了一个不同的错误,
JavaVM: requested Java version ((null)) not available. Using Java at "" instead.
JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
Buildr aborted!
RuntimeError : can't create Java VM
Run Code Online (Sandbox Code Playgroud)
我看了一下这看起来是一个与OSX上的RJB工作方式有关的错误.RJB是Buildr用于与JVM交互的库.基本上RJB似乎不允许配置JVM而不设置一些环境变量(可能在构建时?).见http://rjb.rubyforge.org/.
有两种主要方法可以解决这个问题;
我将研究在下一个版本(1.4.8)中正确解决此问题所需的内容.
更新
在1.4.8中修复 - 1.4.7的解决方法是设置JVM_LIB环境变量
export JVM_LIB=$JAVA_HOME/jre/lib/server/libjvm.dylib
Run Code Online (Sandbox Code Playgroud)