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