Eclipse错误:"无法解析导入XXX"。

164

我正在尝试在Eclipse中使用Hibernate。 我创建了一个新的简单项目,并通过CVS下载了一个同事的项目。 但是两者都无法工作,而我的同事在他的Eclipse上可以工作。 问题在于,对于每个导入Hibernate类,Eclipse都会显示:

The import org.hibernate cannot be resolved

但所有的Hibernate jar包都在构建路径中,也就是说:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar

1
你是如何将这些 JAR 包添加到你的构建路径中的? - jmj
3
通过 "属性 > Java构建路径 > 库 > 添加外部JAR包",可以添加外部的JAR包。 - bluish
https://dev59.com/jGQn5IYBdhLWcg3wVF0w#16919015 - Ashwin Krishnamurthy
1
如果以前可以工作但现在不行了,请参考@dogbane的答案... - Shanimal
清理项目对我没有起作用,但是关闭Eclipse并重新打开它的老方法却奏效了。 - Antoine
显示剩余2条评论
47个回答

313

尝试通过转到以下菜单项来清理您的项目:

Project > Clean...
如果那样行不通,尝试从构建路径中移除jar文件,然后再添加一遍。

5
可能是JRE问题。尝试在项目属性中选择“备用JRE”。 - dogbane
12
"Clean也对我有用。具体是什么情况(突然一切都变得疯狂了)以及Clean是如何帮助的?" - Sabre Runner
1
这也解决了我的问题;它不是一个Hibernate项目,而是一个libGdx项目,调用我的Java导入而不是Jars。和@SabreRunner一样的疑惑,还有:环境工具中有一个bug吗? - Zac
3
我也试过了,它对我也有用。当上下文帮助菜单找到你的类并手动输入相同的导入语句放在标记为“无法解析”的导入语句上方时,它非常令人沮丧,但却没有出现任何错误... - Shanimal
1
这种方法对我的情况没有帮助。 我的Eclipse版本是:Neon.3 Release(4.6.3) - Timothy.Li
显示剩余3条评论

39

很明显有些情况下会存在一个有效的问题,但是有时候Eclipse会无缘无故地抛出这个错误。这仍然是一个老旧的(2010年)Eclipse bug,在2020-09版本中仍然存在,但可以通过对项目设置进行微不足道的更改来解决。

touch .classpath

解决该问题,或前往项目 > 属性 > Java构建路径 > 排序和导出 > 进行无意义的排序更改 > 应用。将顺序更改回来不会导致问题恢复。


2
文件 > 属性 应该更改为 项目 > 属性。 - Timothy.Li
这种方法对我的情况没有帮助。我的Eclipse版本是:Neon.3 Release(4.6.3)。 - Timothy.Li
对我来说,在构建路径的“顺序和导出”选项卡中,JRE系统库必须位于Maven依赖项之上。 - Anthony Hayward
4
这个漏洞现在至少有9年的历史了。 - user1133275
它仍然存在,2019年11月。天哪。 - Tullochgorum
1
刚遇到了同样的问题,更新.classpath解决了它。所以,我猜在Eclipse 2022-03 (4.23.0)中仍然存在这个问题。 - Jim

29
如果是一个Maven项目,还需要点击 Maven >> 更新项目... (F5)

更新Maven项目


如果您将Maven项目导入为“Java项目”,则会出现此问题。将项目转换为Maven项目并按照您所说的进行更新,然后问题就解决了。 - kodmanyagha

22

清理项目。双重检查JAR包是否真正位于构建路径上(无错误)。同时确保“问题”视图中没有任何内容。


我已经尝试过这个不止一次了:用单独的JAR包、在库内部等等。这似乎是一个奇怪的错误! - bluish
1
你在问题视图中有什么东西吗? - Bozho
只有我提到的问题和警告类型:“可序列化类Azienda未声明静态final serialVersionUID字段,类型为long”。 - bluish

17

我找到了问题所在,是由于hibernate3.jar文件出现了问题。我不知道为什么它没有从.zip文件中正确地提取出来,可能是损坏了。检查jar包是否损坏的好方法是在Eclipse的"项目资源管理器"中浏览它们的树形结构:如果无法展开一个jar节点,那么很可能它是损坏的。我发现当你将它们通过拖放方式添加到"项目资源管理器"中时,经常会出现包损坏的情况。也许在操作系统环境下移动和复制它们更好一些!感谢大家。


10
  1. 清理项目 项目 -> 清理...
  2. 右键单击项目 -> 构建路径 -> 配置构建路径 -> 库选项卡 ->

双击JRE系统库 -> 然后选择备用JRE


我更改了SDK版本,它运行得非常出色 :) - undefined

9
我通过移除项目(不要从磁盘中删除)并重新导入来解决了这个问题。

9

这解决了我的问题。

1)清理项目:Project -> clean...

2)右键单击项目 -> BuildPath -> Configure BuildPath -> Libraries选项卡 -> 双击JRE SYSTEM LIBRARY -> 然后选择备用JRE

3)点击保存

4)再次在项目资源管理器中右键单击项目 -> BuildPath -> Configure BuildPath -> Libraries选项卡 -> 双击JRE SYSTEM LIBRARY -> 这次选择“执行环境”

5)应用


对我来说有效。之后将其改回原始设置没有问题。清理不是必要的(使用Eclipse 2020-12)。 - keesp

7

我解决了这个问题,方法是更新项目:右键单击Maven项目,选择Maven -> Update Project -> 选中强制更新快照/发布版本复选框。


7
我曾经遇到过类路径出错的问题。

所以我右键单击包资源管理器中的项目,选择插件工具,再更新类路径… 这个步骤就解决了我的问题。


2
在 Neon.3 Release (4.6.3) 中,通过在 Package explorer 上右键单击项目,上下文菜单中没有插件工具。 - Timothy.Li

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接