Ich habe den folgenden Code
IJavaProject targetProject = null;
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
for (IProject project : root.getProjects()) {
if (project.getName().equals(projName)) {
try {
if (project.hasNature("org.eclipse.jdt.core.javanature")) {
targetProject = (IJavaProject) project;
}
} catch( ... ) {
// etc ...
}
Was ich zu tun versuche, ist im Wesentlichen ein Projekt zurückgeben, die einen bestimmten Namen als IJavaProject entspricht. Wie Sie sehen können, prüfe ich, ob das betreffende Projekt einen Java-Charakter hat, indem ich es aufrufe:
if (project.hasNature("org.eclipse.jdt.core.javanature")) {
Leider erhalte ich eine 'ClassCaseException', die besagt
java.lang.ClassCastException:
org.eclipse.core.internal.resources.Project cannot be cast to org.eclipse.jdt.core.IJavaProject
Haben Sie eine Idee, warum? Ich hätte gedacht, dass, sobald ein IProject eine Java-Natur hat, kann es zu einem IJavaProject gegossen werden. Ich kann nicht auf die JDT Core API im Moment zugreifen, da der Dienst nicht verfügbar ist aquí .