我的代码在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,然后给我错误。
如果需要更多代码或信息,请与我们联系。如果不需要,我不想粘贴我的整个源代码。
答案 0 :(得分:4)
BinaryClock$1.class
文件将包含您在显示的代码中为WindowAdapter
创建的匿名内部类。您应该将该文件包含在jar文件中。
基本上,您应该构建一个干净的目录,并在jar文件中的该目录中包含所有。不要试图对它进行选择 - 如果编译器正在生成文件,那么就有充分的理由。
答案 1 :(得分:0)
您可以直接从Eclipse创建jar文件。在Package Explorer中右键单击您的项目 - &gt;导出... - &gt; Java - &gt; JAR文件。这非常方便,因为它会考虑项目中的所有设置,包括类路径,并允许您指定大量其他选项。此外,您可以将其保存在Ant文件中,该文件可以使用外部工具运行。 更多信息:http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-33.htm