0

Rawr を使用して、単純な 3 ファイルの Ruby プロジェクトを実行可能な jar に変換して、Ubuntu で実行しようとしています。実行jruby -S rawr installして Rakefile を作成し、ディレクトリ レイアウトをセットアップしました。すべての.rbファイルはsrc、プロジェクトのルートにあるディレクトリの下にあります。を実行するjruby -S rake rawr:jarと、すべての Ruby ファイルがコンパイルされ、問題なく jar が作成されます。次に、それをdeployと一緒にディレクトリに配置しlib/java/jruby-complete.jarます。

で内部からjarを実行してみdeployますjava -jar hg_analyzer.jar。ただし、これを行うと、次のエラーが表示されます。

Exception in thread "main" <script>:1:in `require': Linkage error loading compiled script; you may need to recompile 'file:/home/marcw/Documents/hg_analyzer/deploy/jar/hg_analyzer.jar!/main.class': java.lang.NoClassDefFoundError: org/jruby/ast/executable/AbstractScript$RuntimeCache (LoadError)
    from <script>:1
    ...internal jruby stack elided...
    from Kernel.require(<script>:1)
    from (unknown).(unknown)(:1)

としても実行しようとしましjava -cp lib/java/** -jar hg_analyzer.jarたが、役に立ちませんでした。Class-Pathjar のマニフェスト ファイルのエントリも問題ないようです。main.rbメインの Ruby ファイルです。

-verboseこのオプションを指定して java を実行すると、JRuby jarが検出され、予期された場所からロードされていることが示されます。

何か案は?

4

1 に答える 1

0

理解した!問題は、Rawr が JRuby ランタイムのバージョン 1.5 をダウンロードしていて、私のシステムにはバージョン 1.4 のコンパイラがあることでした。

于 2010-10-15T12:20:52.887 に答える