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-Path
jar のマニフェスト ファイルのエントリも問題ないようです。main.rb
メインの Ruby ファイルです。
-verbose
このオプションを指定して java を実行すると、JRuby jarが検出され、予期された場所からロードされていることが示されます。
何か案は?