【发布时间】:2012-07-01 05:39:41
【问题描述】:
尝试在我的 Java 应用程序中实现 Apache commons-compress 时遇到错误:
java.lang.ClassNotFoundException: org.apache.commons.compress.archivers.ArchiveEntry"
我遇到了在this post 中描述的完全相同的问题,只是我没有使用 Bukkit(不管是什么)。 [咒骂] OP 留下了令人气愤的最后一条帖子,“无论如何,我找到了解决方案。案件已结案!”而不是分享解决方案,所以我不知道他做了什么来解决它。
我没有使用 ArchiveEntry,而是我假设导入 ArchiveEntry 的 TarArchiveEntry。即使我导入了所谓的缺失类,Eclipse 也会警告未使用的导入。奇怪的是,如果我删除我的 TarArchiveEntry 导入,警告会消失,但包含对 TarArchiveEntry 错误的引用的行。
我以前从未遇到过这个问题。 TarArchiveEntry 类似乎包含错误并且无法导入 ArchiveEntry,但我看不到广泛使用的库(例如 apache commons)包含此类基本错误。
我的暗示有什么问题吗?
【问题讨论】:
-
我尝试过使用其他 Java tar 库,但我得到了相同的行为。要重现,请在 Java bean 中使用此处 (code.google.com/p/jtar) 中的 tar out 示例。
-
如果您包含一个演示问题的简短示例,这将是一个很大的帮助。我从 jtar 页面编译并运行了
TarOutputStream示例,没有任何问题(它似乎不依赖于 commons-compress)。我还编写了一个导入org.apache.commons.compress.archivers.tar.TarArchiveEntry的虚拟类(我不得不搜索正确的包,因为你没有提到它)并且它编译并运行没有任何问题。您一定在某个地方遇到了类路径问题,一个简短的示例将帮助我们确定这一点。 -
您也可以在命令行上尝试简单的
javac和java命令(使用适当的-classpath参数)来将问题与Eclipse 配置隔离开来。 -
我创建了这个 (pastebin.com/bvvj0EWM) 类并在我的支持 bean 中创建了它的一个实例。
标签: java jar classnotfoundexception