在Eclipse中,红色感叹号图标代表什么意思?

160
在Eclipse中,红色感叹号图标代表什么?互联网上有很多关于“红色感叹号图标”、“红色感叹号标记”和“红色惊叹号图标”的搜索结果,毫无疑问,这是因为许多插件和编程相关工具使用红色感叹号图标。因此,为了明确起见,我指的是这个:

screenshot of red exclamation point icon

它出现在包资源管理器视图中的项目上,作为一个装饰器。

在我的情况下,当填写了缺失的构建路径变量时,该图标消失了。我使用的是MyEclipse 9.0,但我认为这不是MyEclipse特有的。互联网上的其他人报告说,这与其他问题有关,包括Subclipse、.svn文件夹和在工作副本之间移动文件。


1
由于这被证明是标准的Eclipse图标:请参见https://dev59.com/PHI_5IYBdhLWcg3wBuRs - Pops
11个回答

185
根据文档

美化包含构建路径错误的Java项目和工作集

实际上,我发现“构建路径错误”可能由许多原因引起,这取决于哪些插件处于活动状态。请查看“问题”视图以获取更多信息。


1
我已经修复了错误,但仍然看到红色图标。有点困惑。 - vsingh
1
这是因为上传者的外部Jar构建路径与我的位置不同。感谢提供信息。 - IAmGroot
1
"Problems"视图在出现SVN故障的情况下不显示任何内容。如果出现这种情况,请尝试删除有问题的文件夹中的“.svn”文件夹,然后刷新。 - iono
16
+1 表示“检查 问题 视图”。在我的情况下,被检查的项目没有任何问题,而是项目“缺少必需的源文件夹:'target/generated/src/main/java'”。这是当你使用 Maven,并且在检出后第一次还没有构建项目时出现的情况。 - Withheld
在我从项目->属性->Java构建路径->源中移除丢失的源代码后,问题已经解决了。 - Dayong
显示剩余2条评论

17
这意味着您的项目中存在构建路径问题。如果它是一个Android项目,那么它很可能意味着project.properties文件中指定的目标值无法找到。这也可能是由于其他类型的构建问题引起的。但它通常只显示为构建问题。请参见here以获取更多详细信息。它是关于在eclipse中看到的构建错误装饰器。
以下是该页面的摘录:
构建路径问题有时很容易在项目的其他问题中被忽略。包资源管理器和项目资源管理器视图现在在包含构建路径错误的Java项目和工作集上显示一个新的装饰器:

enter image description here

具体的错误可以在“问题视图”中看到,如果您打开视图菜单并选择“按组分组 > Java问题类型”,它们都会显示在“构建路径”类别中:

enter image description here


16

当我尝试从一台机器导入源文件和JAR文件到另一台机器时,我也遇到了类似的问题。新机器上JAR的路径与旧机器不同。我解决了它,方法如下:

  1. 右键单击“项目名称”
  2. 选择“构建路径”
  3. 然后选择“配置构建路径”
  4. 点击“库”
  5. 删除所有引用旧路径的库

然后,“项目名称”上的感叹号就消失了。


谢谢你的回答。我很感激你愿意提供帮助,但这并没有从技术上回答我的问题。我想知道这个图标代表什么,但这只是解释如何摆脱它。 - Pops

8

可能有几个原因。大多数情况下可能是以下某些原因:

  1. 您已从/lib文件夹中删除了一些.jar文件
  2. 您已添加新的.jar文件
  3. 您已添加可能与其他文件冲突的新的.jar文件

因此,我们必须解决这些缺失/更新/新添加的jar文件。

  1. 右键单击项目,选择 属性
  2. 选择 Java Build Path
  3. 进入 Libraries 选项卡
  4. 删除您已经删除的jar文件引用。它们旁边会有一个红色标记,所以您可以很容易地识别它们。
  5. 使用 Add JARs 添加对新添加的.jar文件的引用
  6. 刷新项目

如果问题是由上述原因之一引起的,则将解决该问题。


6
我发现另一种可能出现红色感叹号的情况。我将一个目录从一个项目复制到另一个项目。这个目录包括一个隐藏的 .svn 目录(原始项目已提交到版本控制)。当我将新项目检入 SVN 时,复制的目录仍然包含旧的 SVN 信息,错误地将自己标识为原始项目中的一个元素。
通过查看目录的属性,选择 SVN 信息并查看资源 URL,我发现了问题。我通过删除我的复制目录中的隐藏 .svn 目录并刷新我的项目来解决问题。红色感叹号消失了,我能够正确地检入目录及其内容。

4
我所做的有些奇怪,但某种程度上它解决了问题。选择任何一个项目并对build.properties文件进行虚拟编辑(例如添加和删除空格,然后保存文件)。清理并重新构建工作区中的项目。
希望这能解决您的一些问题。

2

确保您没有任何未定义的类路径变量(例如M2_REPO)。


2
我遇到的解决方案是由Steve Hansen Smythe提供的。我在这里只是复制粘贴。谢谢Steve。
“我发现另一种可能出现红色感叹号的情况。我从一个项目中复制了一个目录到另一个项目。这个目录包括一个隐藏的.svn目录(原始项目已提交到版本控制)。当我将我的新项目检入SVN时,复制的目录仍然包含旧的SVN信息,错误地将自己标识为其原始项目的元素。
我通过查看目录属性,选择SVN Info并查看Resource URL来发现问题。我通过删除我复制目录的隐藏.svn目录并刷新我的项目来解决问题。红色感叹号消失了,我能够正确地检入目录及其内容。”

2
我遇到了同样的问题,Andrew说得对。检查你的类路径变量"M2_REPO"。它可能指向你本地maven库的一个无效位置。
在我的情况下,我正在使用命令行上的 "mvn eclipse:eclipse",这个插件设置了M2_REPO类路径变量。Eclipse找不到我主目录中的maven settings.xml文件,结果错误地设置了M2_REPO类路径变量。我的解决方法是重新启动Eclipse,它接收到了我的settings.xml并移除了我的项目上的红色感叹号。
我从这个人那里得到了更多信息: http://www.mkyong.com/maven/how-to-configure-m2_repo-variable-in-eclipse-ide/

1

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