20

我需要配置创建 jvm 崩溃日志的位置。我喜欢它们的名称(hs_err_pid.log),但我希望它们在特定文件夹中创建。

这里你可以看到你可以使用

-XX:ErrorFile=./hs_err_pid<pid>.log

参数来设置创建的文件,但是如果你将它设置为一个文件夹,所以文件是在那个文件夹中创建的,具有原始命名约定,它不起作用,它被忽略。

我一直在通过从这个问题中崩溃 jvm 1.6 来测试这个,使用这个: PathDasher dasher = new PathDasher(null) ;

有人知道实现这一目标的方法吗?

4

2 回答 2

26

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log作品。

请参阅http://www.oracle.com/technetwork/java/javase/felog-138657.html

该参数不允许使用环境变量,但您可以在启动器脚本(例如 .sh 或 .bat)中使用环境变量,操作系统会进行替换。但是,这将在启动 JVM 时使用环境变量的值,而不是在以后写入文件时。此外,在 Eclipse 中设置运行属性时,环境变量不起作用。

JVM 不会创建保存故障转储的中间目录。如果指定的文件夹不存在,故障转储将保存在默认位置。

于 2011-11-04T12:10:22.200 回答
2

您必须将其用作

java -XX:ErrorFile=/var/log/java/hs_err_pid%p.log -Xbootclasspath/p:. 碰撞

在命令提示符下。在这里,Crash 是我的 java 文件。

于 2015-05-11T06:12:26.853 回答