Eclipse:类路径引用的存档不存在

Posted

技术标签:

【中文标题】Eclipse:类路径引用的存档不存在【英文标题】:Eclipse: The archive which is referenced by the classpath, does not exist 【发布时间】:2013-03-04 08:00:35 【问题描述】:

我的 Eclipse 是 Indigo Java 经典。

我有一个 java 项目,它有 mockito-all 作为依赖项。 pom.xml:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.8.5</version>
    <scope>test</scope>
</dependency>

运行mvn clean install,一切正常。然后我做了mvn eclipse:eclipse来解决Eclipse中的所有依赖。

当我尝试在 Eclipse 中运行 Junit 时,它没有运行并给我这个错误:

'Launching YourTest' has encountered a problem.

The archive: /home/shengjie/.m2/repository/org/mockito/mockito-all/1.9.5.jar which is referenced by the classpath, does not exist.

我的项目 pom.xml 声称它依赖于 mockito-all 1.8.5,我不确定 1.9.5 引用的来源。有什么想法吗?

==编辑==

$ mvn dependency:tree | grep mockito
[INFO] +- org.mockito:mockito-all:jar:1.8.5:test
[INFO] \- org.powermock:powermock-api-mockito:jar:1.4.12:test
[INFO] \- org.powermock:powermock-api-mockito:jar:1.4.12:test
[INFO]    +- org.mockito:mockito-all:jar:1.8.5:test (version managed from 1.9.0)
[INFO] |  +- org.mockito:mockito-all:jar:1.8.5:test (version managed from 1.9.5; scope managed from compile)
[INFO] |  +- org.mockito:mockito-all:jar:1.8.5:test (version managed from 1.9.5; scope managed from compile)
[INFO] \- org.powermock:powermock-api-mockito:jar:1.4.12:test
[INFO] +- org.mockito:mockito-all:jar:1.8.5:test
[INFO] +- org.powermock:powermock-api-mockito:jar:1.4.12:test
[INFO] |  +- org.mockito:mockito-all:jar:1.8.5:test (version managed from 1.9.5; scope managed from compile)

【问题讨论】:

您确定您的 pom.xml 没有其他依赖于版本 1.9.5 的依赖项吗? 添加了一个 mvn 依赖:tree dump,请看一下:) 不是答案,而是另一种选择:是否可以在 Eclipse 环境中使用 m2e? 您是否尝试过从您的应用程序库中手动删除对 mockito-all.jar 版本 1.9.5 的引用? @Korhan Öztürk 你是怎么做到的? 【参考方案1】:

我在尝试启动我的 tomcat 时遇到了类似的问题。我建议您通过以下方式检查“类路径”:

1) 运行配置

右键单击您的项目 然后点击“运行”->“运行配置...” 检查您的项目设置(例如,在我的情况下,它是 Apache Tomcat) 在此处查看“用户条目”下的“类路径”选项卡

2) 项目类路径

右键单击您的项目->“属性”->“Java构建路径” 现在检查“源”选项卡以及“库”选项卡 问题应在“库”标签中标记为红色

【讨论】:

运行配置是我的问题。谢谢。 运行配置也是我的问题。在我按下 Run Configurations -> Classpath 选项卡中的“Restore Default Entries”按钮后,“User Entries”下的条目被刷新。 16/05/2019,这个回答救了我。谢谢比罗尔!【参考方案2】:

在我使用 ANT 的情况下,我更改了 Windows --> Preferences --> Ant --> Runtime --> Global Entries 中的设置。 您需要将 tools.jar 添加为外部 Jar。

【讨论】:

太棒了。我想知道为什么它突然改变了。更新后可能吗?【参考方案3】:

转到窗口 > 显示视图 > 导航器

在那里您将看到.classpath 文件,其中可以看到与您的M2 Repo 相关的依赖项

一个例子是 -

<classpathentry 
 exported="true" 
 kind="var" 
 path="M2_REPO/javax/activation/activation/1.1.1-redhat-2/activation-1.1.1-redhat-2.jar"/>

把版本改成下面的那个

Project Explorer > Your Project > Libraraies > Maven 依赖项

希望这能解决问题。

【讨论】:

这正是我的问题。非常感谢!【参考方案4】:

就我而言,我安装了 JRE,然后添加了 JDK。即使我将项目更改为使用 JDK,ANT 似乎仍坚持使用 JRE。

要解决这个问题,我必须这样做: 1.选择“运行方式...” 2.选择第二个“Ant build...”选项 3. 这将打开一个面板以允许设置配置。选择“JRE”选项卡,将选中的JRE改为JDK

【讨论】:

【参考方案5】:

如果之前的任何答案都不起作用,请尝试以下操作: 右键单击您的项目 -> 调试为 -> 打开调试对话框 ... -> 在类路径中,您会找到导致您遇到问题的 jar。删除它。

希望这对你有用,因为它对我有用。

【讨论】:

【参考方案6】:

我重现了这个问题

分辨率:-

如错误“归档:/AutomationPrj/src/test/resources/resources 被类路径引用,不存在。”中所述。

在我的项目中 /AutomationPrj/src/test/resources**/resources** 确实不存在。我在适当的位置创建了资源文件夹 [empty] 并解决了问题。

【讨论】:

【参考方案7】:

可能是java和eclipse的版本问题。

我从开普勒升级到火星,我使用的是 JAVA 1.7。 我在使用 tools.jar 时遇到了同样的问题。

我降级了 Eclipse,这次构建运行成功。 它可能会帮助你。

【讨论】:

以上是关于Eclipse:类路径引用的存档不存在的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse -- Testng 引用不存在的项目 XXX,启动配置

VS调试运行出错,某些类库项目中引用的命名空间提示不存在

JAVA关于引用外部jar包的问题

eclipse 中jsp的java代码部分引用了一个不存在的变量,怎么不提示报错

为啥eclipse找不到文件夹。文件绝对存在于项目中,但在eclipse中显示不出

Eclipse生成JAXB类 - 懦弱拒绝写入不存在的目录“src”