In the Eclipse Helios Java Package Explorer, I see the Java class icons display a small question mark to the right of the 'J', something like [J?]. This icon is shown on each class within one package in my project, but I cannot find an explanation for this in the documentation.
At some point I expect them to disappear and be replaced with small orange rectangles. (Of which I'm also not certain of their meaning, but less worried of their connotation.) I suppose this question points to a larger one, are any of these icons defined together somewhere?
It means the class is not yet added to the repository.
If your project was checked-out (most probably a CVS project) and you added a new class file, it will have the ? icon.
For other CVS Label Decorations, check http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.user/reference/ref-cvs-decorations.htm
those icons are a way of Egit to show you status of the current file/folder in git. You might want to check this out:
It sounds like you're using Subclipse; is that correct? If so, there's a great list of decorators and their descriptions at this answer by Tim Stone.
Here's the relevant snippet for your case:
this is because your project has been linked to a git-hub repository, and the file having question mark on it, is not been added yet. if you want to remove this sign you will have to add this file to git-hub repository.
In a svn enabled project the small question mark (?) indicates that your file is not yet added to the SVN repository.
The small orange rectangle is an indication that your file is committed in the repository.
An asterisk (*) indicates a local change.
Here's a table of icons for the Java development environment in Eclipse.
Additional adornments can be made by plug-ins -- for example, version-control plug-ins.