13

我们有一个使用 JNI 的桌面应用程序,它偶尔会导致 JVM 崩溃。幸运的是,JVM 生成了一个hs_err_pidXXXX.log文件,该文件在调试此类错误时非常有用。但是,它似乎总是进入当前工作目录,从那里挖掘它很烦人,因为我们的其他日志文件都转到特定的“日志文件位置”。

是否可以为这些“故障转储”文件指定不同的位置?如何?

4

2 回答 2

16

乔纳斯,

尽管 HeapDumpPath 适用于堆转储,但它不是您问题的答案。堆转储和 jvm 崩溃日志是两个独立的东西。

要更改 jvm 崩溃日志的目标,请使用以下选项运行 java:

-XX:ErrorFile=/path/to/file.

Path/to/file 是您希望 JVM 崩溃日志输出的位置。

于 2012-05-03T15:24:36.177 回答
7

默认情况下,堆转储是在VM 工作目录中名为java_pidpid.hprof的文件中创建的。您可以使用-XX:HeapDumpPath=选项指定替代文件名或目录。例如-XX:HeapDumpPath=/disk2/dumps将导致在/disk2/dumps目录中生成堆转储。

于 2009-12-10T10:58:15.343 回答