提供的 .class 文件中的 NoClassDefFoundException
NoClassDefFoundException in a provided .class file
我正在尝试使用为学校作业提供给我的一些文件在 Eclipse 中构建一个项目(我在到期前有足够的时间)。我 运行 遇到了一个奇怪的问题,但我还没有找到答案。该项目是两个 AI 玩家之间进行的游戏。弓箭手被敌人控制。 archer 的代码以 .class 文件的形式出现,我没有任何其他源代码。在弓箭手尝试移动之前一切似乎都正常,然后发生了这种情况:
Exception in thread "Thread-5" java.lang.NoClassDefFoundError: ArcherAgent
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 向我表明它正在寻找内部 class。我试过将文件放在不同的位置都无济于事,而且当我注意到 $1.还有其他方法可以解决这个问题吗?我不完全确定如何处理它似乎缺少内部 class 的事实,我现在一直在搜索,但我认为我还没有找到任何东西。
抱歉给您带来麻烦。
你说得对,缺少的 class 是一个内部 class。这个 class 在编译器生成的另一个文件中。当你没有这样命名的文件时,它丢失了,所以你必须获取外部 class 的源代码或在其他地方找到丢失的编译内部 class。
查看 ArcherAgent class 的导入块。我确定您错过了一些使用 ArcherAgent class 的库。 NoClassDefFoundError 表示导入块中的 classes 不在 classpath 中。
我正在尝试使用为学校作业提供给我的一些文件在 Eclipse 中构建一个项目(我在到期前有足够的时间)。我 运行 遇到了一个奇怪的问题,但我还没有找到答案。该项目是两个 AI 玩家之间进行的游戏。弓箭手被敌人控制。 archer 的代码以 .class 文件的形式出现,我没有任何其他源代码。在弓箭手尝试移动之前一切似乎都正常,然后发生了这种情况:
Exception in thread "Thread-5" java.lang.NoClassDefFoundError: ArcherAgent
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 向我表明它正在寻找内部 class。我试过将文件放在不同的位置都无济于事,而且当我注意到 $1.还有其他方法可以解决这个问题吗?我不完全确定如何处理它似乎缺少内部 class 的事实,我现在一直在搜索,但我认为我还没有找到任何东西。
抱歉给您带来麻烦。
你说得对,缺少的 class 是一个内部 class。这个 class 在编译器生成的另一个文件中。当你没有这样命名的文件时,它丢失了,所以你必须获取外部 class 的源代码或在其他地方找到丢失的编译内部 class。
查看 ArcherAgent class 的导入块。我确定您错过了一些使用 ArcherAgent class 的库。 NoClassDefFoundError 表示导入块中的 classes 不在 classpath 中。