如何使用--javac使warbler编译ruby文件?

时间:2013-12-29 04:18:17

标签: java ruby jruby warbler

我正在使用warbler从ruby类构建一个jar,以便它可以作为交互式应用程序运行。现在,我想在我的java应用程序中将该jar用作库。我注意到warbler生成的jar包含使用jrubyc编译的ruby类而没有--javac选项。所以任何人都知道如何使用warbler生成jar,以便它可以作为独立的应用程序运行,也可以用作Java项目中的库,以便可以用Java创建ruby类的对象?

以下是我的ruby代码的结构:

core
    |--- lib
        |----a.rb
        |----b.rb
    |---java_lib

a.rb内容:

require 'b'
class A
    def test
        ob=b.new
        puts ob.test
    end
end

b.rb内容:

class B
    def test
        puts "test"
    end
end

然后,我使用warbler创建了一个jar,在另一个java项目的类路径中放入一个jar并尝试访问a.test。但它说“无法加载 - b”

1 个答案:

答案 0 :(得分:0)

Warbler目前不允许您通过该选项。我看到you have already opened an issue关于此事。除此之外,最好的办法是尝试通过黑客the line of code that invokes jrubyc添加选项,看看事情是如何失败的。

我没有运行Warbler项目,但我认为这不是Warbler的重点,所以你可能只想写一个运行jrubyc的Rakefile(或Makefile,或POM,或其他)并创建JAR适合你。

此外,您对问题的更新重点关注unable to load -- b问题,这与原始问题完全无关,我相信我已在your other question中回答了问题。