我需要配置创建jvm崩溃日志的位置。我喜欢他们的名字(hs_err_pid.log),但我想在特定的文件夹中创建它们。
在here中,您可以看到可以使用
-XX:ErrorFile=./hs_err_pid<pid>.log
param用于设置创建的文件,但是如果将其设置为文件夹,那么文件是使用原始命名约定在该文件夹中创建的,它不起作用,会被忽略。
我一直在通过从this questions崩溃jvm 1.6来测试这个,使用这个: PathDasher dasher = new PathDasher(null);
有人知道实现这个目标的方法吗?
答案 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文件。