0
我正在嘗試使用Rawr將一個簡單的3文件Ruby項目轉換爲可在Ubuntu上運行的可執行jar。我運行jruby -S rawr install
來創建Rakefile並設置目錄佈局。我所有的.rb
文件位於項目根目錄下的src
目錄下。當我運行jruby -S rake rawr:jar
時,它編譯了所有的Ruby文件並創建了一個很好的jar。然後將它與一起放入我的deploy
目錄中。Rawr創建的jar拋出ClassDefNotFoundError
我嘗試從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
,但無濟於事。 jar的清單文件中的Class-Path
條目看起來也不錯。 main.rb
是主要的Ruby文件。
運行java與-verbose
選項顯示它是找到JRuby jar並從預期的位置加載它。
任何想法?