Eclipse-Workspace Referenz außerhalb Eclipse-Plugin
Frage
Ich bin mit dem folgenden Code:
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
public class WorkspaceTest {
public static void main(String[] args) {
IWorkspace workspace = ResourcesPlugin.getWorkspace();
}
}
und ich erhalte den folgenden Fehler:
Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
Wie kann ich einen Verweis auf den Arbeitsbereich für eine nicht-Eclipse-Plugin bekommen?
(Um hier den Code auszuführen:)
http: //www.ssw.uni -linz.ac.at/Teaching/Lectures/KompTech/JDT.pdf
Lösung
Erstens kann es einfach bedeutet, dass Sie nicht unter Eclipse-laufen, sondern unter nur eine Standard-Java-Anwendung.
Für eine Eclipse-Plugin, müssen Sie tun es nicht zu früh nennen (wie vor Arbeitsbereich erstellen). Bedeutung für eine nicht-Eclipse-Plugin kann man irgendwie müssen erstellen ein Arbeitsbereich, da Sie nicht in der Lage sein würden, die, die verweisen bereits in Eclipse.
Plus, müssen Sie sicherstellen, dass Sie nicht org.eclipse.core.resources
in dem Build-Pfad haben, sondern vielmehr als ein abhängiges Plugin im Plugin manifest.mf Datei. (Siehe dieses Themas )
So ist die ResourcePlugin
nicht von Eclipse instanziiert wurde (obwohl man immer noch Anrufe an die ResourcePlugin
Klasse mit dem Code gemacht haben könnte).
Siehe auch diese Antwort andere Ideen.