我试图在运行时找到一种在我的Jruby程序中包含jar文件的方法。
说明:我有一行
require 'path/to/jarSome.jar'
现在的问题是,当程序开始运行时,该文件不存在,程序会创建该jar文件(以后我会在同一个程序中使用它)
有没有办法在运行时包含jar?像这样的东西:
# Some ruby code
# create/put the jar file in the location
require/import/load the jar file.???
非常感谢。
答案 0 :(得分:1)
您也可以随时执行require
语句 - ruby是动态的,您不需要在程序启动或源文件加载时执行它。
def create_and_require_jar
do_something_to_create_jar
require 'the/jar/i/created.jar'
end
如果您的问题是罐子在您执行require
时尚未存在 - 只需在执行require时更改,在您创建.jar之后。
虽然我从来没有动态创建.jar以供创建它的同一个程序使用(而且我不确定你为什么要这样做),我有在Jruby中完成了require
.jar,作为动态逻辑的一部分,有时我需要它,有时候我不需要,并且在条件逻辑内执行需求,而不是立即在程序启动时执行。它工作得很好。
我发现你可以在Jruby中做到这一点非常好,基于程序逻辑条件加载一个Jar(首先检查jar是否存在,或者基于参数或配置) - 如果你可以用直接的Java做到这一点,我不知道怎么做,尽管你可以做到!
答案 1 :(得分:0)
我想我找到了答案:
class_loader = JRuby.runtime.jruby_class_loader
class_loader.add_url(java.io.File.new('path/to/jarSome.jar')