我的代码在 Eclipse 中正确编译并运行。在添加一段代码之前,我还可以通过执行以下操作成功制作 jar 文件:
jar cvfm Manifest.txt <Classes>
然后我将其添加到构造函数中的代码中:
addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent e) {
JFrame window = (JFrame) e.getSource();
window.toBack();
}});
当我尝试创建新的 jar 文件并运行它时,我收到 NoClassDefError ,其中错误行指向该代码。具体来说,我得到了这个:
Exception in thread "main" java.lang.NoClassDefFoundError: BinaryClock$1
at BinaryClock.<init>(BinaryClock.java:55)
BinaryClock 是我的主类,第 55 行是上面代码的第一行。我不明白为什么它使 BinaryClock$1,然后给我错误。
如果需要更多代码或信息,请告诉我。如果不需要,我不想粘贴整个源代码。
最佳答案
BinaryClock$1.class
文件将包含在您显示的代码中为 WindowAdapter
创建的匿名内部类。您应该将该文件包含在 jar 文件中。
基本上,您应该构建一个干净的目录,并将该目录中的所有内容包含在您的 jar 文件中。不要试图对其进行选择性 - 如果编译器正在生成文件,那么这是有充分理由的。
关于java - 创建jar文件时出错: NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10473437/