2012-06-01 1 views
5

In meinem benutzerdefinierten Eclipse-Plugin habe ich den vollständig qualifizierten Klassennamen einer Java-Klasse als String und möchte den tatsächlichen Dateipfad kennen. Eigentlich möchte ich den Namen des Quellordners wissen, in dem er sich befindet.Wie kann man den absoluten Dateipfad einer Java-Quelldatei im Eclipse-Plugin bestimmen?

Die Klasse könnte aus einem der Java-Projekte im Arbeitsbereich stammen. Die Namen der Quellordner sind beliebig.

Ich benutze Eclipse 3.6.

Danke!

Antwort

2

Sie müssen die Suchmaschine API verwenden. Siehe org.eclipse.jdt.core.search.SearchEngine.

Sie können sehen, dass es verschiedene statische Funktionen gibt, die Sie anrufen können, jede mit ihren eigenen Optionen. Sie müssen ein entsprechendes org.eclipse.jdt.core.search.SearchPattern erstellen und es dann zusammen mit einem Bereich (dem Arbeitsbereich) und einem Anforderer (etwas, das alle Ergebnisse erfasst) an die Suchmaschine übergeben.

Normalerweise erhalten Sie eine Menge zurück, wie IType s, die die öffentliche API für den Zugriff auf Typen im Java-Modell sind. Sie können IType.getResource().getLocation() aufrufen, um den Dateisystemspeicherort eines beliebigen Typs abzurufen. Die Methode "getResource" gibt möglicherweise null zurück, daher müssen Sie dies überprüfen.

+0

Vielen Dank! Das klingt sehr vielversprechend. Ich werde das am Montag ausprobieren können und Sie wissen lassen, ob es funktioniert. Kannst du eine bestimmte 'SearchEngine' Methode empfehlen? –

+0

Der Open Type-Dialog (Strg + Umschalt + T) Verwendet dieselbe SearchEngine. – Ravi

+0

@Ravi Ja, das habe ich gehofft! Btw, kann ich einfach eine neue Instanz der 'SearchEngine' Klasse erstellen, oder muss ich sie von einer Eclipse Factory bekommen? –

2

Sie müssen die JDT API stuff verwenden, um an die IResource der Java-Klasse zu gelangen. Von dort können Sie die Ressourcen-API verwenden, um die enthaltenen Ordner und alles, was Sie sonst noch benötigen, zu erhalten.

Verwandte Themen