没有静态初始化程序的java.lang.ExceptionInInitializerError

时间:2019-06-22 09:01:03

标签: java

我收到java.lang.ExceptionInInitializerError,但没有静态初始化程序。

代码:

public static final File STANDARD_INDEX_FILE = new File(HTMLFileLoader.class.getClassLoader().getResource("index.html").getPath()); // Line 16 

HTMLFileLoader类为空。

例外:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at net.guardian.Guardian.main(Guardian.java:12)
Caused by: java.lang.NullPointerException
    at net.guardian.socket.MainSocket.<init>(MainSocket.java:16)
    at net.guardian.socket.MainSocket.<clinit>(MainSocket.java:24)
    ... 1 more

1 个答案:

答案 0 :(得分:0)

此:

public static final File STANDARD_INDEX_FILE = new File(HTMLFileLoader.class.getClassLoader().getResource("index.html").getPath()); // Line 16 

与此完全相同:

public static final File STANDARD_INDEX_FILE;

static {
  STANDARD_INDEX_FILE = new File(HTMLFileLoader.class.getClassLoader().getResource("index.html").getPath()); // Line 16 
}

就像在编译后的代码中一样。

因此,您确实有一个静态初始化程序;并且该异常发生在该初始化程序块中的某处。