Java:如何指定JVM参数-XX:ErrorFile并在文件名中保留自动PID

Java:如何指定JVM参数-XX:ErrorFile并在文件名中保留自动PID,java,jvm-arguments,hs-err,Java,Jvm Arguments,Hs Err,我正在使用JNI,当目标应用程序中的错误导致崩溃时,将生成hs_err_pid*.log文件。我想更改存储该文件的默认位置。 现在,通过四处搜索,我了解到这可以通过使用JVM参数-XX:ErrorFile实现 表示此参数的默认值为./hs\u err\u pid.log 现在,当我重写默认值时,我如何告诉JVM在文件名中仍然包含进程id? 显然,我试图将targetDir/hs_err_pid.log作为命令行参数,但这导致整个参数被忽略(文件被存储到默认位置,即工作目录)。 如果我只说targ

我正在使用JNI,当目标应用程序中的错误导致崩溃时,将生成hs_err_pid*.log文件。我想更改存储该文件的默认位置。 现在,通过四处搜索,我了解到这可以通过使用JVM参数-XX:ErrorFile实现

表示此参数的默认值为./hs\u err\u pid
.log

现在,当我重写默认值时,我如何告诉JVM在文件名中仍然包含进程id? 显然,我试图将targetDir/hs_err_pid
.log作为命令行参数,但这导致整个参数被忽略(文件被存储到默认位置,即工作目录)。 如果我只说targetDir/hs_err_pid.log,该文件将存储在我想要的位置,但不会在文件名后附加进程id

如有任何建议,将不胜感激。

请尝试

-XX:ErrorFile=targetDir/hs_err_pid_%p.log
在Windows中:

-XX:ErrorFile=C:\targetDir\hs_err_pid_%%p.log

哇,太快了。这看起来正是我要找的。明天将在工作中进行测试,并公布结果。完美。工作得很有魅力!我如何测试/模拟这个?我的意思是,我如何使JVM崩溃并在这个错误文件中写入内容?两个百分号?