获取jruby中java选项的值

时间:2013-12-13 14:17:09

标签: jruby

我想知道,在一个正在运行的jruby脚本中,设置了哪些java选项。有没有办法做到这一点?

我的问题是:我知道有一些脚本需要比其他脚本更多的内存,我想在代码中添加一个约束,以便执行将在适当的警告时提前停止,而不是在内存中耗尽内存未来有些未说明的时间。

也许我可以坚持使用BEGIN {},例如:

if is_set_joption?('-J-Xmx') then
    if get_joption('-J-Xmx').match(/\d+/)[0].to_i < 1000 then
        puts "You're gonna run out of memory...";
        abort();
    end
else
    puts "I recommend you start with -J-Xmx1000m.";
    abort();
end

(...其中is_set_joption?get_joption是由方法组成的。)

跑步jruby 1.7.8。

2 个答案:

答案 0 :(得分:0)

如果您在环境中设置了JAVA_OPTS,那么它将在您的ENV中。你可以从中得到它。你已经在这一点上启动了JVM,所以你需要在其他地方设置它,就像你在命令行中执行jruby -D

答案 1 :(得分:0)

可以做到:

require 'java';
java_import 'java.lang.Runtime';
mxm = Runtime.getRuntime.maxMemory.to_i;

if mxm < (512 * 1024 * 1024) then
  raise "You're gonna need a bigger boat.";
end