IntelliJ错误:java:java.lang.ExceptionInInitializerError

uvs*_*tid 4 intellij-idea

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

码:

package whatever;
import org.junit.Test;
public class TestClass
{
    @Test
    void test() {}
}
Run Code Online (Sandbox Code Playgroud)

场景:

  • 添加新的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
Run Code Online (Sandbox Code Playgroud)

什么可能出错?

这个简单场景中可能出现的问题是什么?

IntelliJ:社区2017.1(idea-IC-171.4424.56)

uvs*_*tid 12

为了解决这个问题,我做了:

  • 文件 - >项目结构... - >项目设置/项目 - >项目SDK.
  • 从"9-ea"变为"1.8".

细节

显然,这个问题是在选定的JDK-S打造(Java 9)和run(Java 8)不符.

我不确定在同一个项目中如何重新选择"9-ea" - IntelliJ本身都不会在"9-ea"JRE(根据帮助 - >关于)中运行,也不 JAVA_HOME会将env var设置为它其他可能设置(如Maven - > Runner)建议任何"9-ea".

我也没有设法在相同的JDK(java 9)下运行测试.但是,目前尚不清楚JDK测试的运行情况,因为IntelliJ仅报告有关JDK的编译.


SJX*_*SJX 6

如果您使用 Lombok:对我来说,这是在 pom.xml 中为我的 maven lombok 依赖项设置最新版本的解决方案。

   *<dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
        <version>1.18.8</version>
    </dependency>*
Run Code Online (Sandbox Code Playgroud)