0

多くのクラスで構成される Jar ファイルがあります。コマンドラインから実行すると(ダブルクリックではなく)、次のようになります。
ここに画像の説明を入力

static{}ブロックに問題があり、JPanelFactoryクラスに静的ブロックがない場合に発生することがわかりました。何が原因ですか?
また
、さらに18個のエラーがあると言われています。私はそれらを見ることができません。どうすればそれらを表示できますか?

JPanelFactory

public class JPanelFactory {
    static JPanel holder = new JPanel(new GridLayout(0,1,5,5));
    static JLabel addNewTaskLabel = new JLabel(constants.IconNames.addVideo,JLabel.CENTER);
    static JLabel deleteTaskLabel = new JLabel(constants.IconNames.deleteVideo,JLabel.CENTER);

    protected JPanelFactory(){

    }

    public static JPanelFactory newInstance(TransferHandler addHandler, TransferHandler removeHandler){
        addNewTaskLabel.setTransferHandler(addHandler);
        deleteTaskLabel.setTransferHandler(removeHandler);
        return new JPanelFactory();
    }

    public JPanel newJPanel(){
        holder.add(addNewTaskLabel);
        holder.add(deleteTaskLabel);
        return holder;
    }
}
4

1 に答える 1

2

イニシャライザ ブロック内の何か、またはフィールドのイニシャライザ式が例外をExceptionInInitializerErrorスローしたことを意味します。スタック トレースのさらに下に "caused by" が表示され、基になる例外が何であったかがわかります。この場合、問題のあるフィールドの初期化式の 1 つであると推測します。スタック トレースの行番号 ( ) で、どれがどれかがわかります。<clinit>static { ... }staticstatic JPanel ...JPanelFactory.java:8

「18 more」は略記で、「caused by」スタック トレースの残りが元のトレースの最後の 18 行と同じであることを意味します (この場合はExceptionInInitializerError)。これにより、長い一連の例外のスタック トレースを出力するときに、多くのスペースを節約できます。

于 2013-05-24T14:54:47.950 に答える