2

我的代码可以在 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,然后给出错误。

如果需要更多代码或信息,请告诉我。如果不需要,我不想粘贴我的整个源代码。

4

2 回答 2

4

该文件将包含在您显示的代码中BinaryClock$1.class为您创建的匿名内部类。WindowAdapter您应该将该文件包含在 jar 文件中。

基本上,您应该构建一个干净的目录,并将该目录中的所有内容包含在您的 jar 文件中。不要试图对此有所选择——如果编译器正在生成一个文件,那是有充分理由的。

于 2012-05-06T19:21:05.290 回答
0

您可以直接从 Eclipse 创建 jar 文件。在包资源管理器中右键单击您的项目 -> 导出... -> Java -> JAR 文件。这非常方便,因为它考虑了项目中的所有设置,包括类路径,并允许您指定大量附加选项。此外,您可以将其保存在可以使用外部工具运行的 Ant 文件中。更多信息在这里:http ://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-33.htm

于 2012-05-06T19:30:11.577 回答