我正在尝试使用 Rawr 将一个简单的 3 文件 Ruby 项目转换为可在 Ubuntu 上运行的可执行 jar。我跑去jruby -S rawr install
创建 Rakefile 并设置目录布局。我所有的.rb
文件都在src
项目根目录下。当我运行时jruby -S rake rawr:jar
,它编译所有 Ruby 文件并创建 jar 就好了。然后它将它deploy
与lib/java/jruby-complete.jar
.
deploy
我尝试从内部执行 jar 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 并正在从预期位置加载它。
有任何想法吗?