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が検出され、予期された場所からロードされていることが示されます。
何か案は?