如何设置jvm崩溃日志文件的位置

时间:2011-11-04 11:28:01

标签: java jvm crash-log

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

here中,您可以看到可以使用

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

param用于设置创建的文件,但是如果将其设置为文件夹,那么文件是使用原始命名约定在该文件夹中创建的,它不起作用,会被忽略。

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

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

2 个答案:

答案 0 :(得分:22)

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log有效。

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

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

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

答案 1 :(得分:2)

您必须将其用作

  

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

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