提供的.class文件中的NoClassDefFoundException

时间:2016-02-27 20:28:00

标签: java eclipse exception artificial-intelligence inner-classes

我正在尝试使用提供给我的一些文件在Eclipse中构建一个项目(我有足够的时间到期)。我遇到了一个奇怪的问题,我还没有找到答案。该项目是两个AI玩家之间的游戏。弓箭手由敌人控制。射手的代码以.class文件的形式出现,我没有任何其他源代码。在弓箭手试图移动之前,一切似乎都能正常工作,然后就会发生这种情况:

Exception in thread "Thread-5" java.lang.NoClassDefFoundError: ArcherAgent$1
at ArcherAgent.isFourDir(ArcherAgent.java:332)
at ArcherAgent.bestToMove(ArcherAgent.java:246)
at ArcherAgent.makeDecision(ArcherAgent.java:218)
at ArcherAgent.middleStep(ArcherAgent.java:150)
at edu.cwru.sepia.agent.ThreadIntermediary.run(ThreadIntermediary.java:140)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: ArcherAgent$1

1美元向我表明它正在寻找一个内部阶级。我已经尝试将文件放在不同的位置无济于事,而且当我注意到$ 1时,我也尝试过使用clean并在Eclipse中构建。还有其他方法可以解决这个问题吗?我不完全确定如何处理它似乎缺少一个内部阶级的事实,我现在一直在寻找,我认为我还没有找到任何东西。

对不起,我很抱歉。

2 个答案:

答案 0 :(得分:1)

你是对的,缺少的是一个内部阶级。此类位于由编译器生成的另一个文件中。当你没有一个名为this的文件时,它就会丢失,所以你必须得到外部类的源代码或者在其他地方找到丢失的编译内部类。

答案 1 :(得分:0)

查看ArcherAgent类的导入块。我确定你错过了一些使用你的ArcherAgent类的lib。 NoClassDefFoundError表示导入块中的类不在类路径中。