我正在使用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”
答案 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中回答了问题。