【发布时间】:2013-02-10 00:28:28
【问题描述】:
好的,我整天都在网上搜索,我已经尝试了我所看到的一切,所以我想知道是否有人可以提供帮助。
我有一个类引用了一个 jar 文件,我已将它复制到我的工作区的 lib 文件夹中,jar 是:Classifier4J.jar,我的类在控制台上完美运行,完全没有错误。当我尝试将 .jar 打包在一起并从另一个程序运行 .jar 时,它给了我这个错误:
Exception in thread "pool-2-thread-1" java.lang.NoClassDefFoundError: net/sf/classifier4J/bayesian/IWordsDataSource...(10 more)
很明显,当我创建 .jar 时,它无法引用它需要的分类器 4j 库。
我尝试过的事情:
-配置我的构建路径
-更改清单文件
-用我的 .jar 打包 .jar
-在 eclipse 中转到 file>export>java>runnable .jar 然后引用库
还有很多其他的东西,但没有任何效果。
如果无论如何有类似的问题或知道为什么会发生这种情况,请你帮我看看这真的让我头疼。这是eclipse的问题吗?可以通过eclipse来完成吗?
提前致谢
杰
【问题讨论】:
-
你能在 eclipse 中运行应用程序吗?
-
@NishantShreshth 是的,应用程序在 Eclipse 中完美运行,只是当我尝试将其添加到 .jar 文件并在另一个应用程序中使用它时,它给了我这个错误。
-
当您使用 eclipse 将其导出为可运行的 jar 时,请选择选项“将所需的库复制到生成的 jar 旁边的子文件夹中”。现在看看依赖项是否真的结束了。
-
@NishantShreshth 最终出现在 .jar 旁边的正确位置,这种方法的问题是它会将每个库复制到该目的地,我只想要 classifer4j 库。
-
理想情况下,它应该只复制您在 Eclipse 中定义为项目依赖项的那些库。您可以通过使用 eclipse 配置构建路径来删除不需要的库。之后尝试导出。
标签: java exception noclassdeffounderror