【问题标题】:java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDatasetjava.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset
【发布时间】:2014-04-05 17:03:13
【问题描述】:

我正在使用 eclipse e4 rcp 应用程序并尝试在其中使用 JfreeChart。所以我在构建路径的外部 jar 文件中添加了 jcommon-1.0.16.jar、jfreechart-1.0.14.jar、jfreechart-1.0.14-experimental.jar 和 jfreechart-1.0.14-swt.jar。运行应用程序时出现以下错误

org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset 
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:344)
    at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:254)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
.............
Caused by: java.lang.ClassNotFoundException: org.jfree.data.xy.XYDataset cannot be found by com.xyz.project_1.0.0.qualifier
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)

任何人都可以建议如何进行吗?

【问题讨论】:

  • 您是否有一个包含 Jfreechart jar 的插件,并且您是否尝试在此插件之外使用 XYDataset(异常表明您正在将 XYDataset 注入某些方法)。如果是这样,您需要导出 jfreechart 类,而其他插件需要依赖导出 jfreechart 类的插件。 (备注:我在 Eclipse E4 富客户端应用程序中使用 jfreechart 并且可以正常工作)
  • 没有。我没有使用插件。我刚刚下载了这些 jar 并将其添加到构建路径中。我是否需要进行任何其他更改?
  • 通常的方法是将jar添加到插件中(plugin.xml/manifest)。此信息用于配置 OSGi 类加载机制。构建路径仅在构建时使用。

标签: eclipse jar eclipse-rcp jfreechart e4


【解决方案1】:

可能还有另一个罐子不见了。您需要检查项目的 Eclipse 构建路径中是否存在所有 jar。

您是在 Eclipse IDE 之外的命令行上运行应用程序吗? 如果是,则设置类路径

SET CLASSPATH=pathtojar1;pathtojar2

在执行程序之前。

或者在命令本身上指定类路径

java -cp pathtojar1;pathtojar2;yourClassesFolderOrYourJar [ yourclassname or -jar yourjarname]

【讨论】:

  • 我在 Eclipse 中运行应用程序。我必须将它添加到 RunConfigurations->Program 参数中吗?如果是这样,其中已经存在一些论据。我是否必须附加您在程序参数中提到的命令? P.S:我是eclipse的新手
  • [[ 我必须在 RunConfigurations->Program 参数中添加它吗? ]] - 我不这么认为。请尝试通过指定类路径从命令行运行。我稍微更新了我的答案。在类路径中也包含您自己的类文件夹。将 jars 添加到您的 Project >Rightclick>Properties>Java Build Path 应该可以工作。当 Eclipse 从内部执行 Java 程序时,它会将构建路径 jar 添加到您的类路径中。或者他们是否在新版本中为外部 jar 更改了某些内容??
  • 如果有帮助请告诉我。我也很想知道陷阱是什么:-)
  • 我已经创建了 lib 文件夹,并将所有 jars 放在 lib 文件夹中,然后我在 buildpath 中添加了 jars。现在问题解决了。
  • 哦,好吧,我学到了一些关于 Eclipse 的知识。在构建路径中添加为外部 jar 的 jar - 运行时不会添加到类路径中。当我添加到外部 jar 时,我不记得遇到问题。奇怪的。也许他们在更新的 Eclipse 版本中改变了一些东西!
猜你喜欢
  • 2022-12-02
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多