运行方法时出现NoClassDefError

时间:2011-06-20 14:59:09

标签: java noclassdeffounderror

当我尝试运行以下代码时会弹出以下错误,我不知道为什么,它在10分钟前完成了字面意义

    KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventPostProcessor(newKeyEventPostProcessor() {
        public boolean postProcessKeyEvent(KeyEvent e) {
            if (e.getID() == KeyEvent.KEY_PRESSED) {
                if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_P){
                    printSinglePage();
                    e.consume();                           
                }
                if(e.isControlDown() && e.isAltDown() && e.getKeyCode() == KeyEvent.VK_P){
                    printAll();
                    e.consume();                           
                }
            }
            return true;
        }
    });

    public void printSinglePage(){
        if(tab.getSelectedComponent() instanceof DuctReport)
            PrintUtilities.printComponent(tab.getSelectedComponent(), DuctReport.PRINT_SIZE);
        else if(tab.getSelectedComponent() instanceof Vandy)
            PrintUtilities.printComponent(tab.getSelectedComponent(), Vandy.PRINT_SIZE);
        else
            PrintUtilities.printComponent(tab.getSelectedComponent(), .8);
    }

    public void printAll(){
        for(int i = 0; i < tab.getTabCount(); i ++){
            if(tab.getComponent(i) instanceof DuctReport)
                PrintUtilities.printComponent(tab.getComponent(i), DuctReport.PRINT_SIZE);
            else if(tab.getComponent(i) instanceof Vandy)
                PrintUtilities.printComponent(tab.getComponent(i), Vandy.PRINT_SIZE);
            else
                PrintUtilities.printComponent(tab.getComponent(i), .8);               
        }  
    }

这是错误:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: PrintUtilities
    at Main.printSinglePage(Main.java:282)
    at Main.menPrintAllActionPerformed(Main.java:221)
    at Main.access$600(Main.java:24)
    at Main$8.actionPerformed(Main.java:148)

4 个答案:

答案 0 :(得分:3)

通常,NoClassDefFoundError是类加载器或类路径问题的结果。检查jar是否未重命名或移动,运行脚本是否正确,类似的东西。代码可能很好,这是环境。

如果您仍然无法解决此问题,请考虑发布有关框架,IDE以及应用启动方式的更多详细信息。

答案 1 :(得分:1)

在NetBeans中工作时,我看到过类似的奇怪错误。我经常做一个“清理和构建”来修复它。有时需要关闭NetBeans并清除NB缓存。

答案 2 :(得分:0)

这是一个环境问题,通常清理和重建项目可以解决问题。

答案 3 :(得分:0)

我有几次这个错误。导致它的主要原因是初始化期间的nullpointerexception。第二件事是在初始化时使用静态变量,显然你不能直接使用任何静态数组(并尝试使用导致这种方法的方法)。

要点:检查你的构造函数并确保那里没有任何异常,这就是导致它的原因。