IRB配置关闭历史保存仍生成文件,求助需额外设置参数吗?
JRuby jirb_swing 仍生成历史文件的解决办法
问题根源
你使用的是JRuby 1.7.27的jirb_swing_ex,普通IRB的IRB.conf[:SAVE_HISTORY]和IRB.conf[:EVAL_HISTORY]配置对它不生效。因为jirb_swing是基于Swing的独立实现,有自己的历史管理逻辑,不遵循标准IRB的历史控制规则。
可行解决方案
方案一:直接覆写jirb_swing的历史保存方法
把以下代码添加到你的irbrc_for_testing.rb中:
# 禁用jirb_swing的历史保存逻辑 if defined?(JRuby::SwingIRB) JRuby::SwingIRB.instance_eval do def save_history; end end # 清空历史文件路径配置 IRB.conf[:HISTORY_FILE] = nil end
方案二:定向无效路径
强制让历史写入到空设备,这样即使尝试保存也不会生成有效文件:
# Linux/macOS 下 IRB.conf[:HISTORY_FILE] = '/dev/null' # Windows 下替换成这行 # IRB.conf[:HISTORY_FILE] = 'NUL'
验证步骤
- 先确认
IRBRC环境变量指向正确:运行echo $IRBRC(Linux/macOS)或echo %IRBRC%(Windows),检查输出路径是否是你的测试配置文件。 - 启动jirb_swing后,在交互窗口输入
IRB.conf,查看[:HISTORY_FILE]和相关历史配置是否已按你的设置生效。
内容的提问来源于stack exchange,提问作者user1934428
相关产品推荐
相关产品推荐

