为什么Eclipse Java包资源管理器显示一些类的问号?

117
在Eclipse Helios Java包资源管理器中,我看到Java类图标显示一个小问号在“J”的右边,类似于[J?]。这个图标显示在我的项目中一个包内的每个类上,但是我在文档中找不到解释。

enter image description here

在某些时候,我希望它们会消失并被小的橙色矩形所替代。(虽然我对它们的含义不确定,但我更不担心它们的内涵。)我想这个问题指向一个更大的问题,这些图标是否有定义在一起的地方?
6个回答

147

啊,太好了!谢谢,这回答了我的问题。我已经将包和类提交到CVS中,问号不见了。 - dfdumaresq

30

对于某些版本控制插件而言,这意味着本地文件尚未与版本控制仓库共享。(在我的安装中,这包括CVS和Git的插件,但不包括Perforce。)

有时候你可以在插件的首选项下看到这些修饰符的列表,路径为Team/X/Label Decorations,其中X表示版本控制系统。

例如,对于CVS,该列表如下:

enter image description here

这些装饰品被添加到 Eclipse 提供的对象图标中。例如,这里是一个Java开发环境图标表


这确实为我提供了所有图标的列表。谢谢! - dfdumaresq
在Eclipse帮助中心搜索时找不到相关内容。标签装饰的帮助页面只提供了一般信息,并链接到首选项页面以启用/禁用特定的标签装饰,但没有展示它们的视觉效果。 - Cincinnati Joe

24

听起来你正在使用Subclipse,是吗?如果是的话,在这个答案中,Tim Stone列出了一份很好的修饰符列表及其描述。

以下是你的情况相关的代码片段:

未版本化的文件 - 还未被版本控制的文件。通常这些是你还没有提交到仓库的新文件。
同步的文件 - 没有本地更改的文件。


我正在使用CVS存储库浏览器(不确定它是否使用Subclipse),但是是的,这是一个很棒的清单。谢谢! - dfdumaresq

8
在启用 的项目中,小问号(?)表示您的文件尚未添加到 SVN 存储库中。
小橙色矩形表示您的文件已提交到存储库中。
星号(*)表示本地更改。

7
这些图标是Egit用来显示当前文件/文件夹在git中状态的一种方式。你可能想要查看以下内容:
dirty(文件夹)-至少有一个文件在该文件夹下是脏的;这意味着它在工作树中有更改,但是不在索引或存储库中。
已跟踪-资源已知道Git存储库。未跟踪-资源未知于Git存储库。
忽略-该资源被Git团队提供者忽略。只有团队-> 忽略资源和“派生”标志下的首选项设置才相关。.gitignore文件不会被考虑在内。
脏-该资源在工作树中具有更改,但是既不在索引中也不在存储库中。
暂存-资源具有添加到索引中的更改。请注意,仅可在资源上下文菜单的提交对话框上添加到索引。
部分提交-资源具有添加到索引中的更改,并且另外还有工作树中既不在索引中也不在存储库中的更改。
已添加-资源尚未由Git存储库跟踪,但已添加。
已删除-资源已准备好从Git存储库中删除。
冲突-文件存在合并冲突。
假定有效-资源具有“假定未更改”的标志。这意味着Git停止检查工作树文件是否可能被修改,因此您需要手动取消设置以告诉Git何时更改工作树文件。可以使用菜单操作Team-> 假定未更改(或在命令行上使用git update-index--assume-unchanged)开启此设置。

2

这是因为您的项目已经链接到了一个Git-hub仓库,而带有问号的文件还没有被添加到仓库中。如果您想要去除这个标记,您需要将这个文件添加到Git-hub仓库中。


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