java - NoClassDefFoundError 通过切换到另一个项目
问题描述
我在这里阅读了很多关于 NoClassDefFoundError 的答案,但不知何故我找不到解决我问题的答案。也许我没有足够的经验将其转化为我的问题。
无论如何,我有一个项目(通过 git 导入),其中包含一个包和许多有用的功能。还有一个包含一些演示的包,它们工作得很好。
如果我现在在自己的项目中复制其中一个演示,我会收到错误消息
线程“main”中的异常 java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset at net.[...]
我认为必须有一个简单的解决方案,因为它在另一个项目中运行。
感谢您抽出宝贵的时间。
解决方案
当 Java 虚拟机无法在运行时找到在编译时可用的特定类时,Java 中的 NoClassDefFoundError 就会出现。例如,如果我们有一个类的方法调用或访问一个类的任何静态成员,并且该类在运行时不可用,那么 JVM 将抛出 NoClassDefFoundError。
- 该类在 Java 类路径中不可用。
- 您可能正在使用 jar 命令运行程序,并且该类未在清单文件的 ClassPath 属性中定义。
- 任何启动脚本都会覆盖 Classpath 环境变量。
- 因为 NoClassDefFoundError 是 java.lang.LinkageError 的子类,所以如果它的依赖项之一(如本机库)可能不可用,它也会出现。
- 如果您在 J2EE 环境中工作,多个 Classloader 之间的 Class 的可见性也会导致 java.lang.NoClassDefFoundError,请参阅示例和场景部分进行详细讨论。
推荐阅读
- windows - 比较文件夹中的文件并删除不存在的文件 - 第 2 部分
- r - 如何在 bam() 通用加性模型中提取单独“按因素”的拟合值?
- c++ - 指向作为类成员的全局变量的指针
- postgresql - 触发以阻止 UPDATE 并将其转换为 INSERT
- c# - 从 IQueryable 创建自定义对象而不将所有内容加载到内存中
- arrays - Natvis 可视化器将成员指针类型视为数组
- c# - Visual Studio C# 块在“输入”时无法正常格式化
- flutter - Flutter - 单选按钮不会显示保存在存储中的默认值(SharedPreferences)
- denodo - 将文件从一个文件夹移动到 Denodo 中的另一个文件夹
- user-interface - 是什么导致这两个验证规则错误消息之间的差异?