简单的.jar文件中的NoClassDefFoundError

时间:2011-09-06 16:45:57

标签: java jar

我正在尝试从我的项目中创建一个简单的.jar文件。该项目由两个.class文件组成 - 使用二级类生成GUI的主类。主类是运行的实际“主”类,而第二类只是带有它的方法的类文件,它也是JFrame的扩展并导入javax.swing和java.awt.event。 *

我用Jar将它全部捆绑起来。我添加一个清单文件(带有一个新的行字符),该文件使用main方法指向主文件。因此,Jar文件有两个.class文件和一个包含manifest.txt的文件夹。当我使用javaw.exe运行它时,根本没有任何事情发生。所以我尝试在命令行中运行它,并得到关于辅助类的NoClassDefFroundError。

当我尝试在JCreator中编译并运行第二个类时,我注意到我遇到了同样的错误 - 难怪,它没有main方法,它只是一个类文件。当我从JCreator运行主文件时,一切正常。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

查看堆栈跟踪,我现在可以看到问题:我可以告诉你实际上有两个以上的类:

Caused by: java.lang.ClassNotFoundException: grafPrime$calcButton at 

有一个名为grafPrime$calcButton.class的文件,它也需要在jar文件中。可能还有其他此类文件 - 请确保包含所有这些文件!

答案 1 :(得分:2)

好的,问题是你没有包含匿名类 - 你应该有一个名为grafPrime$calcButton.class的文件,而这个文件不在你的jar文件中。

基本上,将代码编译成一个干净的目录,并包含所有生成的类文件。