java - 运行 Jar 时出现 NoClassDefFoundError
问题描述
我有这个问题。当我在 Intellij 中运行我的代码时,它工作正常,但如果我做一个工件并构建 jar,它就不起作用。我认为它是由外部库引起的。这是我的输出:
Exception in thread "main" java.lang.NoClassDefFoundError: com/mindfusion/scheduling/Calendar
at GUI.<init>(GUI.java:75)
at Logfiles.main(Logfiles.java:13)
Caused by: java.lang.ClassNotFoundException: com.mindfusion.scheduling.Calendar
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 2 more
我知道它是哪个类,但我不知道如何解决问题。我真的只是一个初学者。你能帮我解释一下吗?谢谢
编辑:
在我使用提取的库构建工件后,出现此错误:错误:发生 JNI 错误,请检查您的安装并重试线程“main”中的异常 java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效
解决方案
此错误仅表示 jar 中不存在类文件。
一种可能的解决方案是您可以下载用于查看 jar 的jd-gui 。您可以使用它来检查该类是否存在。
另一个解决方案是您可以使用这个简单的命令 grep 搜索 jar 中的类。
grep -l "<class-name>" <jar-name>.jar
如果 jar 文件中不存在该类。您可以使用 jar 命令添加类。
jar -cvf <jar-absolute-location> <class-path>
eg : jar -cvf GUI.jar com.mindfusion.scheduling.Calendar
推荐阅读
- javascript - React.StrictMode 会激活什么样的检查和警告?
- r - R中的`data.table` - 创建列和使用函数
- javascript - 带有选项组的角度材料多选下拉列表仅从每个组中选择一项?
- reactjs - 为什么反应返回解析错误:意外令牌
- reactjs - 发送一个 React.FunctionComponent
> 作为另一个组件的道具 - python - Django REST 框架:OneToMany 关系中的 NestedSerializer
- mysql - 使用 ORDER BY ... LIMIT 20; 使查询极慢
- react-native - React Native:导航服务的导航问题,无法在按下时导航
- python - Pandas 面板数据 - 返回具有年份间隔的滚动累积总和
- ffmpeg - FFMPEG - 宽度/高度不能被 2 整除(缩放以生成 MBR 输出)