簡體   English   中英

無法在 Java 11 中生成 GC 日志

[英]Unable to generate GC logs in 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:\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 的不合理行為。

如果你真的想這樣做,你需要一個腳本來確保在運行你的應用程序之前目錄存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM