gpt4 book ai didi

java - jar 里的 NoClassDefFoundError

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

我有一个类位于名为 com.toptur.sysTray 的包中,它所做的只是加载系统托盘,它不使用任何外部包。我创建了一个 SysTray 对象来安装系统托盘。一切都很好。我可以从命令行运行应用程序并安装系统托盘。但是当我尝试从类文件创建一个 jar 并运行它时,我得到了 NoClassDefFoundError。

包及其类文件在 jar 中我的应用程序不使用 ant 外部 jar。只是 java 提供的类。

如果从 jar 中构建一个 .exe 文件,它会再次开始工作而不会出现任何错误。

我怎样才能追踪到它?

  <target name="jar" depends="">
<jar destfile="build/toptur.jar" >
<manifest>
<attribute name="Built-By" value="Toptur"/>
<attribute name="Main-Class" value="gotacan"/>
</manifest>
<fileset dir="build">
<include name="**/*.class"/>
<include name="**/*.png"/>
<exclude name="**/*.jar"/>
</fileset>
</jar>

我使用上面的代码从 ant 目标创建 jar 文件。驱动程序不在包中。它位于 gotacan.java

我使用 java -jar toptur.jar 运行它

程序的其余部分可以正常工作,它只会在我尝试使用该程序包时抛出异常。

最佳答案

Class not Found Exception 应该提到它正在寻找的类的名称。

因为类路径上只有 jar,所以它应该在 jar 中,但事实并非如此。找出原因,可能的原因:

  • ant构建包时类文件不在其所属位置
  • 表示包名称的目录结构不是所有其他类的根目录结构
  • 类文件所在的地方不在ant放入jar的文件列表中。

祝你好运

注意:jar 只是带有态度的 zip 文件,因此您可以使用任何 zip 程序来检查其中实际包含哪些文件。

关于java - jar 里的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/959980/

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