gpt4 book ai didi

java - 内部类未包含在 jar 文件中

转载 作者:搜寻专家 更新时间:2023-11-01 02:13:35 25 4
gpt4 key购买 nike

我用六个类制作了一个可运行的 jar 文件:

Main:包含主要方法,并在 list 中指定(我包含了一个新行)

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

我不知道哪里出了问题。有人可以帮忙吗?

编辑:我想通了!事实证明,您需要在美元符号前添加一个转义字符 (\),以便命令识别它们。

最佳答案

您已经找到了您的具体答案,但这里有一个更笼统的答案。

当您修改程序时,具有自动生成名称(例如,Main$2)的类集将会改变。此外,如果将类移动到命名包中,则 jar 文件必须具有并行目录结构。您不希望每次发生这种情况时都必须更新您的 makefile 或构建脚本。相反,您应该使用 javac -d 为已编译的类文件指定目标目录,然后将整个层次结构打包。

关于java - 内部类未包含在 jar 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12023490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com