IntelliJ错误:java:java.lang.ExceptionInInitializerError

时间:2017-08-16 15:54:47

标签: intellij-idea

每次我在IntelliJ中遇到此异常时,我都会轻易修复它并轻易忘记修复。

代码:

package whatever;
import org.junit.Test;
public class TestClass
{
    @Test
    void test() {}
}

情景:

  • 添加新的TestClass
  • 右键点击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)

5 个答案:

答案 0 :(得分:9)

要解决这个问题,我会这样做:

  • 文件 - >项目结构...... - >项目设置/项目 - > Project SDK。
  • 从“9-ea”更改为“1.8”。

<强>详情

显然,问题是所选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

  1. 转到IntelliJ中的以下路径

文件->项目结构->项目->项目SDK->(选择要使用的Java版本)

(在我的情况下,选择了“ project SDK” java-11,我将其更改为“ java8”)

  1. 单击“应用”,然后单击“确定”。

enter image description here

enter image description here

我觉得我遇到了这个问题,因为IntelliJ试图使用内置的Java-11来编译我的Java类,而我的Java类却是基于Java-8构建的。所以当我在IntelliJ中显式配置java-8时,它起作用了!!希望这会有所帮助。

答案 3 :(得分:0)

如果您最近更新了IDE,则可以尝试以下步骤。

  1. 删除想法项目/工作区的.idea目录
  2. 然后转到文件->使缓存无效/重新启动...
  3. 重新启动Idea后,重新添加/导入您的模块

答案 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