每次我在IntelliJ中遇到此异常时,我都会轻易修复它并轻易忘记修复。
代码:
package whatever;
import org.junit.Test;
public class TestClass
{
@Test
void test() {}
}
情景:
TestClass
。TestClass
。“消息构建”窗格显示:
Information:javac 9-ea was used to compile java sources
Information:Module "dummy" was fully rebuilt due to project configuration/dependencies changes
Information:8/16/17 11:35 PM - Compilation completed with 1 error and 0 warnings in 1s 663ms
Error:java: java.lang.ExceptionInInitializerError
可能出现什么问题?
这个简单方案中可能出现的问题是什么?
IntelliJ:COMMUNITY 2017.1(idea-IC-171.4424.56)
答案 0 :(得分:9)
要解决这个问题,我会这样做:
<强>详情
显然,问题是所选JDK-s的构建(java 9)和run(java 8)存在差异。
我不确定在同一个项目中如何重新选择“9-ea” - IntelliJ本身在“9-ea”JRE中运行(根据帮助 - &gt;关于)也 JAVA_HOME
env var设置为也不其他可能的设置(如Maven - &gt; Runner)建议任何“9-ea”。
我也没有设法在相同的JDK(java 9)下运行测试。但是,目前尚不清楚JDK测试的运行情况,因为IntelliJ仅报告有关JDK的编译。
答案 1 :(得分:1)
如果您使用Lombok:对我来说,这是在pom.xml中为我的Maven lombok依赖项设置最新版本的解决方案。
*<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.8</version>
</dependency>*
答案 2 :(得分:1)
当我尝试在IntelliJ-2019.2版本中运行我的应用程序时遇到相同的错误。以下是我要解决此问题的步骤。
版本:
IntelliJ:IDEA-IntelliJ-2019.2
Java:jdk1.8_221
文件->项目结构->项目->项目SDK->(选择要使用的Java版本)
(在我的情况下,选择了“ project SDK” java-11,我将其更改为“ java8”)
我觉得我遇到了这个问题,因为IntelliJ试图使用内置的Java-11来编译我的Java类,而我的Java类却是基于Java-8构建的。所以当我在IntelliJ中显式配置java-8时,它起作用了!!希望这会有所帮助。
答案 3 :(得分:0)
如果您最近更新了IDE,则可以尝试以下步骤。
答案 4 :(得分:0)
在计算机上安装Java 11后,我开始看到此异常。 JAVA_HOME
默认指向Java 11,而我的项目仍在Java 8中。将JAVA_HOME
更改为Java 8 jdk对我来说解决了这个问题。
如果您有多个项目都在不同的JDK上运行,请使用此命令临时更改每个命令的Java版本。
JAVA_HOME=/path/to/JVM/jdk/Home mvn clean install