最近在使用IDEA时,打开项目莫名其妙的就崩溃了,重启了电脑,重启了IDEA依然无效。
仔细回顾这两天做了什么操作,除了从GitHub上clone了一个项目,并用IDEA打开过该项目之外,并无其他操作。
于是只好分析错误日志,IDEA每次崩溃都会在特定的目录下生成一个错误日志,崩溃的时候也会弹框显示错误原因。崩溃日志可在Help->Edit Custom VM Options中进行查看:
代码语言:javascript复制-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
-Xbootclasspath/a:../lib/boot.jar
我这里找到的IDEA崩溃信息如下:
代码语言:javascript复制#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (safepoint.cpp:917), pid=2771, tid=138023
# fatal error: Illegal threadstate encountered: 4
#
# JRE version: OpenJDK Runtime Environment (11.0.6 8) (build 11.0.6 8-b765.25)
# Java VM: OpenJDK 64-Bit Server VM (11.0.6 8-b765.25, mixed mode, tiered, compressed oops, concurrent mark sweep gc, bsd-amd64)
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
很奇怪的错误描述,明明用的Java 8,为什么描述信息中显示的是OpenJDK 11呢?检查了所有的项目,把项目所使用的JDK均修改为Java 8,但依旧崩溃~真有点冰块。
后来想到,是不是在构建项目的时候用了其他版本的JDK?于是在Preferences中逐项查找,还真找到了与日志中一直的JDK版本。
对应路径为:Build->Build Tools->Maven->importing。
在上述路径的配置项中有一项:JDK for importer,可以看出,这里使用了java 11.0.6 8。基本确定是这里导致了崩溃。于是,将其修改为Java 8,重启IDEA,问题得到解决。
博主简介:《SpringBoot技术内幕》技术图书作者,酷爱钻研技术,写技术干货文章。