Java -jvm配置中的XX:HeapDumpPath选项不工作

Java -jvm配置中的XX:HeapDumpPath选项不工作,java,linux,jvm,Java,Linux,Jvm,-XX:HeapDumpPath在kill-3时不工作 java -server -Xms4G -Xmx4G -XX:+UseG1GC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:{GC_PATH} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath={HEAP_PATH} -jar -Dspring.profiles.ac

-XX:HeapDumpPath在kill-3时不工作

java -server -Xms4G -Xmx4G -XX:+UseG1GC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:{GC_PATH} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath={HEAP_PATH} -jar -Dspring.profiles.active=local app.jar

gc日志以正确的{gc_PATH}打印。但是用标准字体打印的Heapdump


当kill-3时,jvm配置中是否有任何错误或不起作用???

HeapDumpPath
仅影响响应以下选项之一而生成的自动堆转储:

  • -XX:+HeapDumpOnOutOfMemoryError
  • -XX:+HeapDumpBeforeFullGC
  • -XX:+HeapDumpAfterFullGC
它对通过其他方式生成的堆转储没有影响,例如通过JMX调用的
jmap
命令或
dumpHeap
操作


另外,
HeapDumpPath
线程转储没有影响。特别是,
kill-3
将在Java进程的
stdout
上打印线程堆栈。如果要将线程转储到给定的文件,请使用
jstack

什么shell解释该命令行?我使用了默认的bash shell。那么在该上下文中使用{…}有什么用呢?这看起来不像是有效的bash语法。我使用了正确的路径。在这种情况下,我只是隐藏了它。-XX:HeapDumpPath=/abc/def/heap.dumps,-XX:HeapDumpPath=“/abc/def/heap.dumps”任何不起作用的内容