无法在java 11中生成GC日志
我试图在java 11中创建不存在的文件夹中的gc日志。xxx文件夹不存在无法在java 11中生成GC日志,java,garbage-collection,java-11,Java,Garbage Collection,Java 11,我试图在java 11中创建不存在的文件夹中的gc日志。xxx文件夹不存在 C:\>java -Xlog:gc*:file=C:\Users\xxx\gc.log --version [0.006s][error][logging] Error opening log file 'C:\Users\xxx\gc.log': No such file or directory [0.006s][error][logging] Initialization of output 'file=C
C:\>java -Xlog:gc*:file=C:\Users\xxx\gc.log --version
[0.006s][error][logging] Error opening log file 'C:\Users\xxx\gc.log': No such file or directory
[0.006s][error][logging] Initialization of output 'file=C:\Users\xxx\gc.log' using options '(null)' failed.
Invalid -Xlog option '-Xlog:gc*:file=C:\Users\xxx\gc.log', see error log for details.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
如何在不存在的文件夹中获取gc
日志?
如果文件夹存在,则工作正常
java -version
openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.5+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.5+10, mixed mode)
答案是,你不能 如果深入研究JVM源代码,您会发现日志框架将尝试使用fopen库调用打开您提供的文件名。如果日志文件不存在,则会创建它(文件打开模式为追加)。但是,日志代码不会尝试遍历提供的路径并在不存在目录的地方创建目录 对于JVM来说,这并不是不合理的行为
如果您真的想这样做,您需要一个脚本来确保在运行应用程序之前目录存在 使用Java 11 NamanI意味着准确完整的版本为
Java-version
prints.Java-version openjdk version“11.0.5”2019-10-15 openjdk运行时环境采用openjdk(构建11.0.5+10)openjdk 64位服务器VM采用openjdk(构建11.0.5+10,混合模式)