実行時にエラー ログの場所が指定されていない場合java -cp ../blah someplace/somejar.jar
、jvm エラー ログはどこに書き込まれますか?
2 に答える
「jvmエラー」とはどういう意味ですか? スタック トレースを参照する場合、これらはに書き込まれSystem.err
、standard error stream
. これは通常、そのまま端末に出力されますSystem.out
。必要に応じて、JVM を呼び出すとき ( を使用2> /my/file.log
)、またはコード内から をリダイレクトして、これをリダイレクトできますSystem.err
。
一部のロギング フレームワークは std-error をリダイレクトしますが、それは構成によって異なります。
JVM クラッシュ ログ (JVM がクラッシュした場合に作成されます。JNI を使用していなければ発生することはありませんが、実際には発生することがあります) を参照すると、状況が異なります。これらは通常、jvm が起動されたフォルダーに作成されます。このフォルダーが書き込み可能でない場合、/tmp
ディレクトリは Unix システムで使用されます。
Java Platform, Standard Edition Troubleshooting Guide: Location of Fatal Error Logによると、フラグが指定されていない場合、システムはプロセスの作業ディレクトリにファイルを作成しようとします。-XX:ErrorFile=file
作業ディレクトリにファイルを作成できない場合 (容量不足、権限の問題、またはその他の問題)、ファイルはオペレーティング システムの一時ディレクトリに作成されます。
Oracle SolarisおよびLinuxオペレーティング システムでは、一時ディレクトリは
/tmp
.Windowsでは、一時ディレクトリは
TMP
環境変数の値によって指定されます。その環境変数が定義されていない場合は、TEMP
環境変数の値が使用されます。