问题
I am writing a simple Java program on Eclipse.
import java.util.HashMap;
public class Demo {
public static void main(String[] args) {
HashMap<String, String> hash = new HashMap();
}
}
The above program generates the following errors.
- The project was not built since its build path is incomplete. Cannot find the class file for java.util.Map$Entry. Fix the build path then try building this project.
- The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files.
I searched over the internet almost everywhere, but I was not able to correct this.
I have installed Java SE 8u5 (JDK) (http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp)
- Windows -> Preferences -> Installed JREs shows
a) jdk C:\Program Files\Java\jdk
- Project -> Build Path -> Libraries shows
a) JRE system library (jdk)
b) JRE system library (jre8)
Please somebody help me.
EDIT: Changing Eclipse version from Helios to Juno solved the problem!
回答1:
I've seen occasional problems with Eclipse forgetting that built-in classes (including Object
and String
) exist. The way I've resolved them is to:
- On the Project menu, turn off "Build Automatically"
- Quit and restart Eclipse
- On the Project menu, choose "Clean…" and clean all projects
- Turn "Build Automatically" back on and let it rebuild everything.
This seems to make Eclipse forget whatever incorrect cached information it had about the available classes.
来源:https://stackoverflow.com/questions/24110620/the-type-java-util-mapentry-cannot-be-resolved-it-is-indirectly-referenced-fro