我正在尝试从我的项目中创建一个简单的.jar文件。该项目由两个.class文件组成 - 使用二级类生成GUI的主类。主类是运行的实际“主”类,而第二类只是带有它的方法的类文件,它也是JFrame的扩展并导入javax.swing和java.awt.event。 *
我用Jar将它全部捆绑起来。我添加一个清单文件(带有一个新的行字符),该文件使用main方法指向主文件。因此,Jar文件有两个.class文件和一个包含manifest.txt的文件夹。当我使用javaw.exe运行它时,根本没有任何事情发生。所以我尝试在命令行中运行它,并得到关于辅助类的NoClassDefFroundError。
当我尝试在JCreator中编译并运行第二个类时,我注意到我遇到了同样的错误 - 难怪,它没有main方法,它只是一个类文件。当我从JCreator运行主文件时,一切正常。
有什么想法吗?
答案 0 :(得分:3)
查看堆栈跟踪,我现在可以看到问题:我可以告诉你实际上有两个以上的类:
Caused by: java.lang.ClassNotFoundException: grafPrime$calcButton at
有一个名为grafPrime$calcButton.class
的文件,它也需要在jar文件中。可能还有其他此类文件 - 请确保包含所有这些文件!
答案 1 :(得分:2)
好的,问题是你没有包含匿名类 - 你应该有一个名为grafPrime$calcButton.class
的文件,而这个文件不在你的jar文件中。
基本上,将代码编译成一个干净的目录,并包含所有生成的类文件。