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

23

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

这里,您可以看到可以使用

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

设置FILE创建的参数,如果你将其设置为文件夹,那么文件将按照原始命名规则在该文件夹中创建,但这种方法不起作用,会被忽略。

我一直在使用以下代码从这个问题中崩溃jvm 1.6:

PathDasher dasher = new PathDasher(null) ;

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


https://dev59.com/bHI-5IYBdhLWcg3wZ3UR - Umer Hayat
2个回答

30

-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将不创建中间目录以保存崩溃转储。如果指定的文件夹不存在,则崩溃转储将保存在默认位置。


如何通过Java运行此命令?我尝试通过cmd运行,但没有成功。 - Muhammed Refaat

2

您需要在命令提示符中使用以下命令:

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

这里,Crash是我的Java文件。

请注意保留HTML标签。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接