12

如果执行时未指定错误日志位置java -cp ../blah someplace/somejar.jar,jvm 错误日志将写入何处?

4

2 回答 2

9

“jvm错误”是什么意思?如果您参考堆栈跟踪,这些被写入System.err导致standard error stream. 这通常按原样打印在您的终端System.out中。如果需要,您可以在调用 JVM 时(使用2> /my/file.log)或在代码中通过重定向来重定向它System.err

一些日志框架重定向标准错误,然后它取决于你的配置。

如果您参考 JVM 崩溃日志(如果 JVM 崩溃则创建该日志,如果您不使用 JNI,则永远不会发生这种情况,但实际上它们有时会发生)情况就不同了。这些通常在启动 jvm 的文件夹中创建。如果此文件夹不可写,/tmp则在 Unix 系统上使用该目录。

于 2012-12-31T13:43:54.877 回答
6

根据Java Platform, Standard Edition Troubleshooting Guide: Location of Fatal Error Log ,如果未指定标志,系统会尝试在进程的工作目录中创建文件。-XX:ErrorFile=file

如果无法在工作目录中创建文件(空间不足、权限问题或其他问题),则在操作系统的临时目录中创建文件。

  • Oracle SolarisLinux操作系统上,临时目录是/tmp.

  • Windows上,临时目录由TMP环境变量的值指定;如果未定义该TEMP环境变量,则使用环境变量的值。

于 2018-05-18T17:09:31.787 回答