2015-02-26 2 views
0

Im пытается найти способ включить файл jar в мою программу Jruby во время выполнения.JRuby требует файла jar во время выполнения

Объяснение: У меня есть строка

require 'path/to/jarSome.jar' 

Теперь проблема заключается в том, что этот файл оленья кожа существует, когда программа начинает работать, программа создает что банку файл (и им использовать его позже на той же программе)

Есть ли способ включить банку во время выполнения? что-то вроде этого:

# Some ruby code 
# create/put the jar file in the location 
require/import/load the jar file.??? 

спасибо заранее.

ответ

1

Вы также можете выполнить require заявления всякий раз, когда вы хотите - рубин динамичен так, что вам не нужно, чтобы выполнить его при загрузке программы или источнике загрузка файла.

def create_and_require_jar 
    do_something_to_create_jar 
    require 'the/jar/i/created.jar' 
end 

Если ваша проблема в том, что банки еще не существует в данный момент вы выполняете require - просто изменить при выполнении требуют, чтобы после того, как вы создали .jar.

В то время как я никогда не создавал .jar динамически, который будет использоваться по той же программе, что он был создан (и я не знаю, почему вы хотите), я есть сделал require из .jar в Jruby, как часть динамической логики, где иногда мне это требуется, а иногда и нет, и требую внутренней логики, а не сразу при загрузке программы. Все нормально.

И я нашел очень приятным, что вы можете сделать это в Jruby, условную загрузку Jar на основе логики программы (сначала проверьте, существует ли банка или основаны на аргументах или конфигурации) - если вы может сделать это в прямой Java, я не знаю, как, хотя вы, возможно, сможете!

+0

Это похоже на более легкое решение Спасибо! :П – tubu13

0

Я думаю, что я узнал ответ:

class_loader = JRuby.runtime.jruby_class_loader 
class_loader.add_url(java.io.File.new('path/to/jarSome.jar') 
Смежные вопросы