是否可以指定JVM的崩溃转储的位置?

Joo*_*kka 13 java logging jvm crash-dumps

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

是否可以为这些"崩溃转储"文件指定不同的位置?怎么样?

And*_*arr 14

Joonas,

虽然HeapDumpPath适用于堆转储,但它不是您的问题的答案.堆转储和jvm崩溃日志是两个不同的东西.

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

-XX:ErrorFile=/path/to/file.
Run Code Online (Sandbox Code Playgroud)

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

  • @MuhammedRefaat在控制台上:`java -XX:ErrorFile =/path/to/file.log -jar myapp.jar` (2认同)

Sch*_*jer 8

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

  • -1 问题是关于崩溃日志,而不是如公认的答案所指出的堆转储。这仍然是很好的信息,但不是这个问题的答案。 (3认同)