1. ホーム
  2. java

[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。

2022-01-28 10:07:54

質問

public class PropHolder {
  public static Properties prop;

  static {
    //code for loading properties from file
  }
}

// Referencing the class somewhere else:
Properties prop = PropHolder.prop;

class PropHolder は自作のクラスです。このクラスは、メインクラスと同じ JAR ファイルに存在します。ですから、クラスパスからJARが欠落しているということはないはずです。

JAR ファイルを jar tf myjarfile を見ることができます。 PropHolder.class が記載されています。

Btw: コードは私のローカルマシン上で問題なく動作しています。しかし、私はいくつかのスクリプトでそれをLinuxサーバーにデプロイしたときに動作することができませんでした。だから、私はそれがコードの問題ではないと思います。 しかし、何らかの理由で、デプロイプロセスを追跡するのは非常に困難です。

何が問題なのでしょうか?

解決方法は?

私の最善の策は、ここに問題があることです。

static {
    //code for loading properties from file
}

キャッチされない例外が発生し、クラスをロードしようとする実際の ClassLoader にまで伝播したようです。 これを確認するためには、スタックトレースが必要です。

を作成する際に発生したのか、あるいは PropHolder.prop 静的変数