对于不存在的类,eclipse java.lang.NoClassDefFoundError

时间:2012-07-10 16:12:33

标签: java eclipse

当我尝试编译项目时出现此错误:

    java.lang.NoClassDefFoundError: me/hansolox1/tetris/test
Caused by: java.lang.ClassNotFoundException: me.hansolox1.tetris.test
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main" 

但是上课me.hansolox1.tetris.test我删除了之前我添加了实际代码到项目。 这是我第一次看到这样的错误......请帮助!

编辑:

我删除了测试类,但使用方法'main'删除了新类:

package me.hansolox1.tetris;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;

public class tetris extends StateBasedGame {
    public static final int MAINMENU = 0;
    public static final int TETRIS = 1;

    public tetris(){
        super("Tetris!");
    }

    @Override
    public void initStatesList(GameContainer arg0) throws SlickException {
        this.addState(new MainMenu(MAINMENU));
        this.addState(new MainState(TETRIS));
    }
    public static void main(String[] args) throws SlickException{
        AppGameContainer app = new AppGameContainer(new tetris());

        app.setDisplayMode(800, 600, false);
        app.start();
    }
}

我正在使用slick2d引擎...

EDIT2:我也尝试过清理

3 个答案:

答案 0 :(得分:1)

  1. 转到项目的属性页面
  2. 转到“运行/调试设置”
  3. 如果您在那里找到了已删除的课程,请将其删除。
  4. 这对我有用!

答案 1 :(得分:0)

或者你可以在eclipse命令行上尝试-clean选项。这会清除存储的项目信息,包括哪些类受到另一个类的更改的影响。

答案 2 :(得分:0)

我的工作解决方案:

  1. 制作新项目
  2. 将原始项目中的所有文件复制到新项目
  3. 在测试新项目后删除了旧项目
  4. 我知道这可能是最糟糕的解决方案,但它确实有效......