我使用的红宝石MySQL库在JRuby下,并得到以下警告:选择性沉默的JRuby警告
/mysql/protocol.rb:530 warning: GC.disable does nothing on JRuby
有没有什么办法让JRuby中不停抱怨呢?
我使用的红宝石MySQL库在JRuby下,并得到以下警告:选择性沉默的JRuby警告
/mysql/protocol.rb:530 warning: GC.disable does nothing on JRuby
有没有什么办法让JRuby中不停抱怨呢?
你有几个选项。
首先,您可以使用-W0
选项运行程序,该选项将禁用所有警告。这可能不是你想要的。
但是,应用-W0
与设置$VERBOSE
到nil
相同 - 所以我们可以简单地在要禁止警告的代码周围执行此操作。这是第二个也是更可取的选择。
def suppress_all_warnings
old_verbose = $VERBOSE
begin
$VERBOSE = nil
yield if block_given?
ensure
# always re-set to old value, even if block raises an exception
$VERBOSE = old_verbose
end
end
puts "Starting"
MyConst = 1
MyConst = 2
suppress_all_warnings do
GC.disable
end
puts "Done"
使用JRuby 1.5.0运行这个正确警告我关于重新初始化常数和正确抑制GC.disable
警告。
如果您从ruby-mysql切换到activerecord-jdbcmysql-adapter,则可以完全避免此警告。
非常好,内容翔实的答案。谢谢! – makenai 2010-05-21 05:25:54