私はJVMがjava.lang.NoClassDefFoundErrorのを投げている奇妙な問題とこだわっています。問題を特定する上での助けがあれば、大いに感謝しています。java.lang.NoClassDefFoundErrorが:クラスを初期化できませんでした|静的ブロック
public class AccessorFactory
{
private static Map classMap = null;
static
{
classMap = new HashMap(100);
classMap.put("bills", Class.forName("com.example.BillAccessor"));
}
}
public class BillAccessor
{
class BillInnerClass
{
//some code
}
}
私は3つのクラスAccessorFactory.class、BillAccessor.classとBillAccessor $ BillInnerClass.classを持っています。 3つはすべて同じjarファイルにあり、すべてがクラスパスにあります。
私は最近、BillAccessor $ BillInnerClassクラスで何かを変更し、jarファイルにこのファイルを置き換えると、サーバ(JBoss版)でアプリケーションインスタンスを再起動しました。
ポストは、私はjarファイル内のクラスパスに存在
java.lang.NoClassDefFoundError: Could not initialize class AccessorFactory
AccessorFactoryクラスを取得しています再起動します。他には何も私はBillAccessor $ BillInnerClass置き換えたことを除いて変更されません。
(a)JBossのシャットダウン、(b)全体のjarの再構築、(c)JBossへのドロップ、そして最後に(d)JBossの再起動を試したことはありますか? – dcsohl
は、以前のexcetionsを探してください。ほとんどの場合、静的初期化子が失敗しました。例えば、 'Class.forName'に例外があるとします。 – eckes