我用六个类制作了一个可运行的 jar 文件:
Main:包含main方法,并在manifest中指定(我包含了一个新行)
Main$1 和 Main$2:主类中的 2 个匿名内部类。(Main$2 在 main 方法中,但我认为这并不重要。)
形式
Form$1:Form 中的匿名内部类
包装布局
我在制作 jar 文件时指定了这些内部类,但是当我查看它时(我在 mac 上)内部类不在 jar 中!所以当我运行它时,我得到了这个:
Exception in thread "main" java.lang.NoClassDefFoundError: Main$2
at Main.main(Main.java:64)
Caused by: java.lang.ClassNotFoundException: Main$2
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more
我不知道出了什么问题。有人可以帮忙吗?
编辑:我想通了!事实证明,您需要在美元符号前添加一个转义字符 (\),以便命令识别它们。