为什么 java 忽略选项“-XX:ErrorFile=/dev/null”

why java ignored option "-XX:ErrorFile=/dev/null"

我想防止 JVM 生成崩溃日志文件,所以我的启动脚本如下所示

java -XX:ErrorFile=/dev/null MyClass

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

OS: ubuntu 18.04, java 版本: oracle java 10

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

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

有关 JVM 维护者的更多详细信息和评论,请参阅此 OpenJDK 错误报告: https://bugs.openjdk.java.net/browse/JDK-8189672