我在抱怨无效的源发行版的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
有人会假设我的系统上没有安装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偏好设置中未选中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
最佳答案
我看了一下,似乎是与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