0

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

有任何想法吗?

4

1 回答 1

0

弄清楚了!问题是 Rawr 正在下载 1.5 版的 JRuby 运行时,而我的系统上有 1.4 版的编译器。

于 2010-10-15T12:20:52.887 回答