4

無効なソースリリースについて不平を言う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

システムにJava7がインストールされていないと思われるかもしれませんが、実行するjavac -versionjavac 1.7.0-u10-b08、インストールしたばかりのOpenJDKであるが表示されます。

ここで何が起こっているのですか?私の最初の推測では、Buildrが間違ったバージョンのJavaを実行していると思いますが、それを修正または確認する方法がわかりません。

この質問の背景を説明するために、私はMac OS Xバージョン8(Mountain Lion)を実行しており、http: //code.google.com/p/openjdk-osx-build/からOpenJDKをインストールしました。env JAVA_HOME=$JAVA_HOME gem install buildrRVMを使用してRubyを管理し、ドキュメントで推奨されている方法を使用して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
4

3 に答える 3

6

これを見てみたところ、OSX 上の RJB の動作に何らかの形で関連するバグのようです。RJB は、Buildr が JVM と対話するために使用するライブラリーです。基本的に、RJB はいくつかの環境変数を設定せずに JVM の構成を許可していないようです (おそらくビルド時に?)。http://rjb.rubyforge.org/を参照してください。

これを回避するには、主に 2 つの方法があります。

  • 「compile.using(:externaljavac)」などをビルドファイルに追加して、外部コンパイラを使用します。
  • JRuby を使用します。

次のリリース (1.4.8) でこれを正しく解決するために何が必要かを調べます。

アップデート

1.4.8 で修正済み - 1.4.7 の回避策は、JVM_LIB 環境変数を次のように設定することです。

export JVM_LIB=$JAVA_HOME/jre/lib/server/libjvm.dylib
于 2012-09-26T22:06:53.053 に答える
1

これはビルダーの問題のようです。歴史的に、事前に決められたパスを使用して Mac 上の Java ホーム フォルダを検出していました。JAVA_HOME をオーバーライドすると思います。これをテストするとよいでしょう。

Buildr バグ追跡システムにバグを報告していただければ、それを確認することができます。

于 2012-09-25T23:26:43.813 に答える
1

これは回避策であるため、それほど多くの答えではありません。ビルドが機能するようになりましたが、Ruby の代わりに JRuby をインストールして使用した後でした (CRuby? 私はどちらかというと Python 派です)。

私の調査によると、Mac OS X では 1.7 JVM が多くの問題を引き起こしているようです。いつかこれらの問題が解決されることを願っていますが、今のところ JRuby が良い回避策のようです。

TLDR; JRuby を使用します。

于 2012-09-25T19:31:50.620 に答える