为 Spring 引导应用程序编写的核心转储文件在哪里

Where is the core dump file written for a Spring Boot application

我正在使用 winsw 在 Windows 中启动一个 Spring 启动应用程序,在它崩溃后我无法在任何地方找到 Java 核心转储文件。

Java 核心转储文件位于何处?

谢谢。

Java 核心转储在 Windows 上的位置这个问题有点复杂。最常见的答案是:

  • $JAVA_HOME/bin
  • 进程的当前工作目录

文件通常命名为 hs_err_<PID>

但是,您可以 告诉 Java 在哪里写入转储文件,而不是猜测。

在 Oracle JVM 中,默认的 JVM 参数是:-XX:HeapDumpPath。例如:

-XX:HeapDumpPath=/path/to/dumps/directory/java_pid<pid>.hprof`

IBM 提供了自己的风格:-Xdump。例如

-Xdump:heap:label=/path/to/dumps/directory/heapdump.%Y%m%d.%H%M%S.%pid.%seq.dump
-Xdump:java:label=/path/to/dumps/directory/core.%Y%m%d.%H%M%S.%pid.%seq.dump

并且如果您 运行 和 -Xdump:what 则日志事件将在启动时写入 STDOUT,显示您选择的各种转储参数。