如何杀死Ruby-Java Bridge(Rjb)加载的JVM

时间:2012-05-16 14:53:50

标签: ruby jruby rjb

  • 我正在使用Rjb访问Ruby中的外部Java库。
  • 我正在使用的Java类只能在每次运行JVM时配置一次。
  • 在我的测试中,我需要针对不同的配置设置测试Java类。
  • 因此,我正在寻找一种方法来重置" Rjb,即杀死JVM并开始一个新的。

这可能吗?怎么样?

2 个答案:

答案 0 :(得分:1)

我使用VisualVM来检测JVM的存在与否,发现Rjb :: unload有效。但是,当我尝试重新加载JVM时,它会失败。以下是显示此内容的irb会话:

➜  ~  irb --prompt simple
>> require 'rjb'
=> true
>> Rjb::load
=> nil
>> Rjb::unload
=> 0
>> Rjb::load
RuntimeError: can't create Java VM
    from (irb):4:in `load'
    from (irb):4
    from /Users/kbennett/.rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `<main>'
>> 

- 基思


http://about.me/keithrbennett

答案 1 :(得分:0)

(免责声明:当我使用rjb时,它从来没有坚如磐石的稳定性。)

我将Ruby实例变量设置为Java类的实例。当我完成后,我将Ruby实例变量设置为nil