【问题标题】:why java ignored option "-XX:ErrorFile=/dev/null"为什么 java 忽略选项“-XX:ErrorFile=/dev/null”
【发布时间】:2019-05-15 21:38:30
【问题描述】:

我想防止JVM生成崩溃日志文件,所以我的启动脚本是这样的

java -XX:ErrorFile=/dev/null MyClass

但是当发生 jvm 崩溃时,日志文件 'hs_err_pidXXXXX.log' 仍然会在当前工作目录中生成。为什么?

操作系统:ubuntu 18.04,java版本:oracle java 10

【问题讨论】:

    标签: java jvm java-native-interface


    【解决方案1】:

    如果指定给-XX:ErrorFile 的文件存在,或者无法打开,则JVM 回退到默认的hs_err_pid 错误文件路径。由于/dev/null 可能存在,这可以解释这种行为。

    我浏览过OpenJDK JVM源码,对应Oracle的HotSpot,在这方面的报错代码中似乎没有对/dev/null进行特殊处理。

    有关 JVM 维护人员提供的更多详细信息和 cmets,请参阅以下 OpenJDK 错误报告: https://bugs.openjdk.java.net/browse/JDK-8189672

    【讨论】:

    • 完美解释。我只会添加几个选项来解决这个问题。 -XX:+SuppressFatalErrorMessage 完全禁用错误报告。也可以在创建后立即删除日志文件:-XX:OnError="rm hs_err_pid%p.log"
    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 2014-12-27
    • 1970-01-01
    • 2020-08-08
    • 2021-08-23
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    相关资源
    最近更新 更多