在Eclipse中,当所有Java源代码编译时都没有错误时,什么会导致Package Explorer出现“ red-x”错误图标?


94

我正在使用Eclipse进行Java开发。我所有的源代码都可以正常编译,并且生成的应用程序也可以正常编译。但是,我在程序包资源管理器中始终收到“ red-x”错误通知。

我在此源目录中的所有源代码(对于快照来说太长)都可以正常编译,没有显示“ red-x”错误图标。

任何有关如何解决该问题的建议将不胜感激。

Answers:


167

是的,有时候这种情况有时没有明显的原因。您可以转到“问题” -Tab(在控制台输出旁边)并查看错误消息,因此也许可以通过这种方式缩小它的范围。


6
当另一个非Java组件验证失败时,我会特别得到它(一个很好的例子是XML文件,例如spring或maven的文件)。
Spencer Kormos

2
如果您在问题视图中看到任何问题,那显然是原因。我还没有看到没有明显原因的错误:)
nanda 2010年

添加到jan-gressman的答案。有时,当您在“问题”选项卡中查看时,您会发现问题出在某些文件夹(例如__duplicatefile.java)中带有下划线的多余文件。要解决此问题,请右键单击项目,然后选择:Show In> Navigator。然后删除带下划线的重复文件并构建您的项目。
GraSim 2015年

3
我也经常遇到这个问题。对我而言,这归结为在交替使用Eclipse&Maven和命令行(mvn)时手动更改POM文件。要修复:使用问题选项卡进行如上所述的诊断,如果是POM不同步,则可以使用Eclipse中的Maven来“更新项目”:在程序包资源管理器中的项目上单击“右键”,选择“ Maven” ,选择“更新项目”。确保选择“从pom.xml更新项目配置。”,“刷新工作区...”和“清理项目”。
Zack Jannsen

看问题的好建议。我的项目需要更新。
downeyt

16

当我使用Maven时,通常会发生这种情况,而在发现这个问题之前,我一直忽略它。在这种情况下,您需要更新项目(通过在“问题”窗格中查看来解决此问题)

从项目上下文菜单:Maven->更新项目,然后选择可用的Maven代码库

或者,您可以使用(Alt + F5)调出同一窗口


1
即使我点击了更新项目,也无法为我解决问题。在问题选项卡中,我收到100条错误,显示未定义/未初始化/无法解析为某种类型...任何想法
都想


6

建立后。刷新项目,如果仍然存在,请右键单击Eclipse中的“问题”选项卡,然后选择“全部删除”。

如果您执行maven安装并且Eclipse属性文件未正确更新,则经常发生这种情况。即使您的项目没有任何错误。希望!


右键单击“问题”选项卡区域,然后选择“删除”,这就是我需要听到的!
加布里埃尔·斯台普斯

5

首先,我要感谢所有回答的人。但是在我的情况下,清洁和重建还不够,因为问题仍然存在,需要修复。

原来我的软件包目录之一被意外复制,因此现在存在一个名为“ dagskra副本”的额外目录,其中包含带有错误软件包声明的Java文件。此外,此“新”目录中的错误不会在其存在的软件包中显示为“ red-x”:

程序包资源管理器的快照,显示错误的“ dagskra复制”目录r http://www.freeimagehosting.net/uploads/a824304b18.png

这是阅读“问题”标签的提示:-)使我转向正确的方向,所以我选择该答案作为可接受的答案,因为这是我需要的:

“问题”标签中的快照http://www.freeimagehosting.net/uploads/dea26d5dd0.png

希望这对其他人有帮助...


2

因此,在发现构建路径中可能缺少包时,因此针对主项目的红色x删除了该包:

1)进入项目的“ Configure Buildpath” 2)Java Build Path-> Source选项卡-您应该看到缺少包/文件的红色x。如果它不再存在,只需“删除”它。

红X即将消失!:)


1

有时,.project中有构建路径错误,并且您需要切换到“资源”视图以实际查看引起该错误的文件。


1

我遇到了同样的问题,并且通过以下步骤解决了该问题:

  1. 从PROJECT> properties> java build path>库中删除JRE。

  2. 重新开始蚀

  3. 再次添加JRE

  4. 使用“项目”>“清洁”重建项目,然后选择自动生成的选项。

请尝试。


这个问题已经快四年了,已经被回答了,这是答案的重复。请仅在可能帮助问题作者的地方发布新信息。
山姆

对不起,很抱歉,我的看法是,我试图发布新的答案,但不能重复。
2013年

我在01/28/18遇到同样的问题。无论问题有多老,仍然可以提供答案。
Tadele Ayelegn '18年

1

有时候,颠覆也是罪魁祸首。它可能与您的环境没有任何关系。但是,项目的当前状态和本地状态之间可能存在差异。就我而言,进行更新,然后提交到Subversion服务器,为我提供了预期的清除结果,而在项目中没有任何标志,例如X。


我看到Eclipse的SVN插件不是很稳定。我一直与他们有问题。我责怪他们(没有任何线索,只是预感)。您提出的建议对我有效+1。
Pantelis Natsiavas 2015年

0

尝试进行重建。我发现红色x不会一直消失,直到重建完成。


0

我很多次遇到类似的问题,通常对我来说,一个Java文件会说它不会在文本编辑器中编译,但是在包资源管理器中会说它可以编译。

有时执行“ rebuild”或“ clean-build”不起作用,实际上并没有构建文件(必须假定eclipse认为它具有最新文件),而当发生这种情况时,我通常会打开Java构建路径,只需将我的一个依赖项上下移动即可。这迫使日食对所有事物进行重建,并且它似乎总是有效的。

如果仍然有问题,请尝试复制项目并查看是否具有相同的行为,并在最后一次沟渠尝试发布Eclipse的bug时,他们可能需要一段时间才能修复,但至少您知道自己正在听到了


0

要添加到前面的答案中,“清理”项目的一种极端方法是删除它(即从工作空间中删除其引用,而不是删除实际文件),然后重新导入它。
有时,它有帮助...


0

正如其他人所说的,构建路径中的错误文件引用通常是罪魁祸首。

通常是已移动/删除的.jar文件。Eclipse期望在指定位置找到构建路径上引用的所有内容,否则将抱怨。


0

FindBugs还对文件/包添加了红色标记,以指示静态代码分析错误。


0

我已经经历过了。我的案件涉及更多。该项目是从maven命令行打包好的。

我做了几件事。一类有许多使日食混淆的输入。清洁它们是问题的固定部分。2.一种情况是关于Setter的,虽然日食抱怨它不存在,但按F3导航到该Setter。所以我只是重新输入它,它就可以正常工作(即使对于所有其他的二传手)

我仍在为隐式超级构造函数苦苦挣扎,默认构造函数的Item()未定义。必须定义一个明确的构造函数”


0

我还会不时遇到包装上那些含糊不清的错误符号。摆脱掉对我有用的一种方法是,从Java Build Path中有效地删除JRE系统库,然后再次将其重新添加。


发问者询问原因,您提供了一种解决方法
johannes 2012年

0

我最终可行的解决方案是清理所有项目,关闭日食,清理所有项目,关闭日食等至少5至6次。最终,一切都安定下来,一切都按预期进行。有史以来最奇怪的事情!

而且问题或控制台视图中没有错误。

同样,这是在计算机崩溃后发生的。上次发生时,我的整个工作区完全丢失了。它仍然在计算机上,但是当我尝试访问它时,它全部空白。

不管出于何种原因,日蚀确实确实使计算机崩溃变得非常糟糕。


0

另外,您可以通过以下方式更新项目:

右键单击项目名称->选择Maven->右键单击->更新项目。

这对我有帮助。

谢谢。


0

发生这种情况可能有多种原因。如果更改了jdk,则“项目”构面旁边将有一个红色的X,而其他文件夹均未显示错误。如果是这种情况,请修改显示的jdk。这有时在我们的JAX-WS类(HSG


0

我解决了我的

  • 关闭所有其他项目(即不相关的项目选项)

  • 清理并建造

我的项目是android,就做到了。



0

就我而言,解决此问题的方法只是关闭Eclipse并再次打开它。但是我仍然不确定为什么会发生或为什么会发生这种情况。我在清理项目时遇到问题(它说无法删除某些文件),这解决了问题:):


0

我有同样的问题。我检查了“问题” -Tab,发现该项目没有服务器。我定义了服务器。红X灰飞烟灭


0

您可以转到项目->构建路径->库

如果有任何标有X标记的库,即删除了[十字标记],然后再次尝试构建。它也对我有用


0

我今天遇到此问题,并找到了此链接。我按照上面的Patrick Schaefer所述,打开了“更新Maven项目”对话框。单击我的工作项目,然后选中“强制更新快照/发布”和“确定”复选框。所有的红十字都消失了。我希望这可以帮助处于类似情况的任何人。


-2

右键单击有错误的项目,然后在子菜单中选择: Maven > UpdateProject >

然后:

  • 选中所有相关项目的复选框
  • 选择强制更新快照
  • 单击确定。

这对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.