为 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,显示您选择的各种转储参数。
我正在使用 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,显示您选择的各种转储参数。