【问题标题】:NoClassDefFoundError by switching to another projectNoClassDefFoundError 通过切换到另一个项目
【发布时间】:2019-11-10 15:29:54
【问题描述】:

我在这里阅读了很多关于 NoClassDefFoundError 的答案,但不知何故我找不到一个可以解决我的问题的答案。也许我没有足够的经验将其转化为我的问题。

无论如何,我有一个项目(通过 git 导入),其中包含一个包和许多有用的功能。还有一个包含一些演示的包,它们工作得很好。

如果我现在在我自己的项目中复制其中一个演示,我会收到错误

线程“main”中的异常 java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset 在网上。[...]

我认为必须有一个简单的解决方案,因为它在另一个项目中运行。

感谢您抽出宝贵时间。

【问题讨论】:

  • 复制后构建您的项目。如果是 gradle do gradle refresh 或 mvn do mvn clean build
  • 我指的项目是一个maven项目,但使用它的项目不是......所以我不能做一个maven clean build。此外,我没有复制整个项目,我只是复制了代码(并包含/导入了所有必要的内容)

标签: java eclipse noclassdeffounderror


【解决方案1】:

Java 中的 NoClassDefFoundError 在 Java 虚拟机无法在运行时找到编译时可用的特定类时出现。例如,如果我们有一个类的方法调用或访问一个类的任何静态成员,并且该类在运行时不可用,则 JVM 将抛出 NoClassDefFoundError。

  • 该类在 Java 类路径中不可用。
  • 您可能正在使用 jar 命令运行您的程序,而该类不是 在清单文件的 ClassPath 属性中定义。
  • 任何启动脚本都会覆盖 Classpath 环境变量。
  • 因为 NoClassDefFoundError 是 java.lang.LinkageError 的子类 如果其依赖项之一(如本机库)可能不可用,它也会出现。
  • 如果您在 J2EE 环境中工作而不是 Class 的可见性 在多个 Classloader 之间也会导致 java.lang.NoClassDefFoundError,详细讨论请参见示例和场景部分。

【讨论】:

  • 谢谢,我检查了第一点,即使将类文件夹添加到库中也不能解决问题。第二我真的不明白在那里做什么......第三不是这样。我认为第 4 项听起来很有希望……如果这是我的想法 - 我想使用的课程需要我的工作区中没有的课程? - 对吗?
  • 是的,您复制的课程中有一些可用的库。这些依赖类也是需要的。
猜你喜欢
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 1970-01-01
  • 2015-03-11
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多