java.lang.ExceptionInInitializerErrorが発生するロジックを書いてみた・実行結果つまり、static初期化時に何かしらの例外が発生したとき、java.lang.ExceptionInInitializerErrorが発生する
デバックの方法としては
・jarの入れ替えを行ったとき、依存関係が正しく維持されているか
・static初期化処理で例外が発生する処理を書いていないか
を確認するのがよい
public class Main { public static final Map<String,Object> testMap = new HashMap<String,Object>(); static { testMap.put("test", "test"); doHoge(); } private static void doHoge(){ //わざと例外を発行する throw new RuntimeException(); } public static void main(String[] args) { } }
java.lang.ExceptionInInitializerError Caused by: java.lang.RuntimeException at characterencodingtest.Main.doHoge(Main.java:29) at characterencodingtest.Main.<clinit>(Main.java:24) Exception in thread "main"
デバックの方法としては
・jarの入れ替えを行ったとき、依存関係が正しく維持されているか
・static初期化処理で例外が発生する処理を書いていないか
を確認するのがよい