java.lang.NoClassDefFoundError: Could not initialize class xxx 原因と対処法
2022-02-08 01:28:34
NoClassDefFoundErrorが発生する原因はいくつかありますが、ここではスタティック変数やスタティックブロックが原因であることが記されています。具体的にどのような例外が投げられるかというと、以下のようなものです。
java.lang.NoClassDefFoundError: クラス xxx を初期化できませんでした。
JVMがクラスをロードするとき、クラス内のスタティック変数を初期化するか、スタティックブロックを実行します。この時に例外が発生した場合、クラスのロードに失敗し、その後、そのクラスを今後使用すると、次の例のようにNoClassDefFoundError例外がスローされます。
/**
* Description: Bank type enumeration
* User: zhouzhou
* Date: 2018-07-18
* Time: 10:55
*/
public enum BankTypeEnum {
CCB ("CCB","China Construction Bank"),
ABC ("ABC","Agricultural Bank of China"),
ICBC ("ICBC","Industrial and Commercial Bank of China"),
BOC ("BOC","Bank of China"),
CMBC ("CMBC","China Minsheng Bank"),
CMB ("CMB","China Merchants Bank"),
CIB ("CIB","Industrial Bank"),
BCM ("BCM","Bank of Communications"),
CEB ("CEB","China Everbright Bank"),
GDB ("GDB","Guangdong Development Bank"),
CITICIB ("CITICIB","CITIC Bank"),
PSBC ("PSBC","Postal Bank of China"),
PABC ("PABC","Ping An Bank of China"),
HB ("HB","Huaxia Bank"),
BOG ("BOG","Bank of Ganzhou","10001"),
JJBANK ("JJBANK","九江银行"),
;
public static final String APP = "operator";
public static final String BANK_TYPE = "BankType";
private static RedisCache redisCache = SpringContextUtil.getBean("redisCache");
private static MBankService mBankService = SpringContextUtil.getBean("mBankService");
..... Code omitted
}
ExceptionInInitializerError ...... このクラスを初めて呼び出したとき。
NoClassDefFoundError: 最初の初期化に失敗し、その後何度か呼び出した後、BankTypeEnum例外を初期化できませんでした。
テストが何度も失敗してNoClassDefFoundErrorの例外が送られてくるので、例外をトレースして本当の原因を見つけるには、ExceptionInInitializerErrorのエラースタックを全て見つけるしかありません。
解決策
1. 所属するモジュールをインストールする。
2. エラースタックを見て、このクラスはプロジェクトの初期化を開始するために失敗しましたか?
そこで、友人と共有するために、ここにメモしておきます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例