我正在尝试使用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
从java -jar hg_analyzer.jar
内执行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文件。
使用-verbose
选项运行java会显示 找到JRuby jar并从预期位置加载它。
有什么想法吗?
答案 0 :(得分:0)
想出来!问题是Rawr正在下载JRuby运行时的1.5版,我的系统上有1.4版的编译器。