Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是什么导致未引用类的ClassNotFoundException?_Java_Jar_Classnotfoundexception - Fatal编程技术网

Java 是什么导致未引用类的ClassNotFoundException?

Java 是什么导致未引用类的ClassNotFoundException?,java,jar,classnotfoundexception,Java,Jar,Classnotfoundexception,我在Java应用程序中尝试实现Apache commons compress时遇到错误: java.lang.ClassNotFoundException:org.apache.commons.compress.archivers.ArchiveEntry 我有与中描述的完全相同的问题,只是我没有使用Bukkit。这篇[咒骂]文章在最后一篇文章中留下了一个令人愤怒的帖子,不管怎样,我找到了一个解决办法。案件结案!而不是分享解决方案,所以我不知道她做了什么来解决它 我使用的不是ArchiveEnt

我在Java应用程序中尝试实现Apache commons compress时遇到错误:

java.lang.ClassNotFoundException:org.apache.commons.compress.archivers.ArchiveEntry

我有与中描述的完全相同的问题,只是我没有使用Bukkit。这篇[咒骂]文章在最后一篇文章中留下了一个令人愤怒的帖子,不管怎样,我找到了一个解决办法。案件结案!而不是分享解决方案,所以我不知道她做了什么来解决它

我使用的不是ArchiveEntry,而是TarachiveEntry,我假设它导入了ArchiveEntry。即使我导入了假定缺少的类,Eclipse也会警告未使用的导入。奇怪的是,如果删除TarArchiveEntry导入,警告就会消失,但包含对TarArchiveEntry错误的引用的行会消失

我以前从未遇到过这个问题。TarArchiveEntry类似乎包含错误并且无法导入ArchiveEntry,但我看不到广泛使用的库(如apache commons)包含这样的基本错误


我的实现有什么问题吗?

您的类路径有问题。您需要将其设置为包含包含该类的库。它似乎包含在commons compress中,这意味着您应该在某个地方有一个名为commons-compress.jar或类似的文件,请确保它位于您的类路径中。

您的类路径有问题。您需要将其设置为包含包含该类的库。它似乎包含在commons compress中,这意味着您应该在某个地方有一个名为commons-compress.jar或类似的文件,请确保它位于您的类路径中。

我的类路径确实有问题。在我的项目目录中,我在.classpath文件中添加了以下行,因为它是隐藏的,所以请仔细查看:

    <classpathentry exported="true" kind="lib" path="/home/stockb/commons-compress-bin/commons-compress-1.4.1/commons-compress-1.4.1.jar"/>
添加这一行后,我不再获得ClassNotFoundException。我不确定这为什么能解决这个问题,因为我正在使用其他几个库,例如commons-fileupload-1.2.jar,它们在我的.classpath文件中找不到,因此不会引发任何异常


我现在的问题是,当我将jar添加到Eclipse中的构建路径时,为什么Eclipse没有修改这个文件?另外,为什么我需要将commons compress而不是commons fileupload添加到我的.classpath文件中?

我的classpath确实有问题。在我的项目目录中,我在.classpath文件中添加了以下行,因为它是隐藏的,所以请仔细查看:

    <classpathentry exported="true" kind="lib" path="/home/stockb/commons-compress-bin/commons-compress-1.4.1/commons-compress-1.4.1.jar"/>
添加这一行后,我不再获得ClassNotFoundException。我不确定这为什么能解决这个问题,因为我正在使用其他几个库,例如commons-fileupload-1.2.jar,它们在我的.classpath文件中找不到,因此不会引发任何异常


我现在的问题是,当我将jar添加到Eclipse中的构建路径时,为什么Eclipse没有修改这个文件?另外,为什么我需要将commons compress而不是commons fileupload添加到我的.classpath文件中?

我尝试过使用其他Java tar库,但得到了相同的行为。为了重现,在JavaBean中使用这里的tar out示例。如果您包含一个演示问题的简短示例,这将是一个很大的帮助。我从jtar页面编译并运行了TarOutputStream示例,没有任何问题,它似乎不依赖于commons compress。我还编写了一个虚拟类来导入org.apache.commons.compress.archivers.tar.TarArchiveEntry,我必须搜索正确的包,因为您没有提到它,它编译并运行时没有任何问题。你肯定在什么地方有类路径问题,一个简短的示例可以帮助我们确定这一点。您也可以尝试在命令行上使用简单的javac和java命令,并使用适当的类路径参数将问题与Eclipse配置隔离开来。我创建了这个类,并在我的支持bean中创建了一个实例。我尝试使用其他java tar库,但我也有同样的行为。为了重现,在JavaBean中使用这里的tar out示例。如果您包含一个演示问题的简短示例,这将是一个很大的帮助。我从jtar页面编译并运行了TarOutputStream示例,没有任何问题,它似乎不依赖于commons compress。我还编写了一个虚拟类来导入org.apache.commons.compress.archivers.tar.TarArchiveEntry,我必须搜索正确的包,因为您没有提到它,它编译并运行时没有任何问题。你肯定在什么地方有类路径问题,一个简短的例子可以帮助我们确定这一点。您也可以尝试在命令行上使用简单的javac和java命令,并使用适当的类路径参数将问题与Eclipse配置隔离开来。我创建了这个类,并在我的支持bean中创建了它的一个实例。这也就是Eclipse中的构建路径吗?我已经将JAR添加到项目的构建路径中。在过去,我已经成功地使用了几个第三方JAR库
没有找到R。只有在运行时,当我在我的web浏览器中加载页面时,错误才会显示出来。更新-我已经将jar复制到我的web-INF/lib目录,并且得到了相同的结果:-这就是Eclipse中的构建路径吗?我已经将JAR添加到项目的构建路径中。在过去,我已经成功地使用了几个第三方JAR库。而且,我的项目中没有构建错误,如果找不到我的JAR,就会出现这种情况。只有在运行时,当我在我的web浏览器中加载页面时,错误才会显示出来。更新-我已经将jar复制到我的web-INF/lib目录,并且得到了相同的结果:-