日々精進

新しく学んだことを書き留めていきます

Javaプログラムを実行すると「java.lang.NoClassDefFoundError: Could not initialize class」エラー

メッセージからはクラス定義が無いことが原因のように見えるが、クラスを定義するコードはある。。 原因はstaticフィールドの初期化コードの中で例外をthrowしていることだった。 以下のようなコードでMyClassのコンストラクタで例外をthrowしているとNoClassDefFoundErrorになる。

private static final MyClass val = new MyClass();

static {} の中でthrowしても同様。

参考: stackoverflow.com