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

a 中发生的ExceptionInInitializerError事情<clinit>意味着static { ... }初始化程序块中的某些内容或字段的初始化程序表达式static引发了异常。在堆栈跟踪的下方应该有一个“原因”,告诉您底层异常是什么。我认为在这种情况下,它是出错字段的初始化表达式之一static JPanel ...,堆栈跟踪 ( JPanelFactory.java:8) 中的行号应该告诉您是哪一个。

“18 more”是一种简写形式,这意味着“caused by”堆栈跟踪的其余部分与原始跟踪的最后 18 行相同(在本例中为ExceptionInInitializerError)。这可以在打印一长串异常的堆栈跟踪时节省大量空间。

于 2013-05-24T14:54:47.950 回答