【发布时间】:2012-09-14 10:08:36
【问题描述】:
我正在使用 Eclipse + Window Builder + 一些第三方库来构建一个 gui 应用程序,
我的应用程序的入口点位于 MainWindow.java 文件中,该文件还包含应用程序的 gui,除了我几乎没有辅助类。
我的应用程序工作正常,但是当我检查 bin 文件夹时,我发现还有四个类文件,即: 1. MainWindow$1.class 2. MainWindow$2.class 3. MainWindow$3.class 4. MainWindow$4.class.
现在我不明白为什么这些文件在这里,当我删除这些文件时,Eclipse会抛出异常
Exception in thread "main" java.lang.NoClassDefFoundError: gui/MainWindow$1
at gui.MainWindow.main(MainWindow.java:71)
Caused by: java.lang.ClassNotFoundException: gui.MainWindow$1
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
抛出异常的代码是:
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainWindow window = new MainWindow();
window.frmMailExtractor.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
我无法找出这些文件为何存在以及是谁放置的?有什么想法吗?
好的,所以这些是匿名类,但是为什么会出现异常呢?...为什么我在 Eclipse 中看不到它们。因为当我将其导出为可运行的 jar 时,jar 会引发相同的异常
【问题讨论】:
-
它们指的是匿名内部类。见stackoverflow.com/questions/380406/…
-
那么我如何将这些添加到我的 jar 中..我需要将我的应用程序作为 jar 运行...当我使用 Eclipse 的导出选项创建 jar 时,它会给出相同的异常并关闭。
标签: java eclipse class exception