Java 什么是默认的jvm错误日志位置?
如果在执行Java 什么是默认的jvm错误日志位置?,java,Java,如果在执行java-cp../blah someplace/somejar.jar时未指定错误日志位置,jvm错误日志将写入哪里?您所说的“jvm错误”是什么意思?如果参考堆栈跟踪,这些跟踪将写入System.err,这将导致标准错误流。这通常在终端中打印,就像System.out一样。如果需要,您可以在调用JVM时(使用2>/my/file.log)或通过重定向System.err从代码内部重定向此文件 一些日志框架重定向std错误,然后它取决于您的配置 如果您参考JVM崩溃日志(在JVM崩溃
java-cp../blah someplace/somejar.jar时未指定错误日志位置,jvm错误日志将写入哪里?您所说的“jvm错误”是什么意思?如果参考堆栈跟踪,这些跟踪将写入System.err
,这将导致标准错误流
。这通常在终端中打印,就像System.out
一样。如果需要,您可以在调用JVM时(使用2>/my/file.log
)或通过重定向System.err
从代码内部重定向此文件
一些日志框架重定向std错误,然后它取决于您的配置
如果您参考JVM崩溃日志(在JVM崩溃时创建,如果您不使用JNI,则永远不会发生,但事实上有时会发生),情况就不同了。这些文件通常在jvm启动的文件夹中创建。如果此文件夹不可写,Unix系统上会使用/tmp
目录。根据,如果未指定-XX:ErrorFile=file
标志,系统将尝试在进程的工作目录中创建文件
如果无法在工作目录中创建文件(空间不足、权限问题或其他问题),则会在操作系统的临时目录中创建该文件
- 在Oracle Solaris和Linux操作系统上,临时目录为
/tmp
- 在Windows上,临时目录由
TMP
环境变量的值指定;如果未定义该环境变量,则使用TEMP
环境变量的值
文件的默认位置是您的工作目录。Console如果是System.err或System.out,如果是某种日志框架,答案将是“取决于框架”:)如果您使用Mac,请尝试在聚光灯(右上角的放大镜)中搜索Console
。这显示了大多数写入终端以外的其他对象的错误。好吧,同样,如果您不使用日志框架,那么是的。如果您使用一个,请检查它的配置。如果您参考JVM崩溃日志(JVM崩溃时会创建这些日志,如果您不使用JNI,这些日志将永远不会发生)
这正是我的情况,但是在任何地方都找不到崩溃日志,您能帮我弄清楚如何获取它吗?