Häufig gestellte Fragen zu JDT

Kann ein anderer Java-Compiler als der in der Workbench integrierte Compiler verwendet werden (z. B. javac)?

Nein. JDT stellt eine Reihe von ausgeklügelten Funktionen zur Verfügung, unter anderem eine vollautomatische schrittweise Kompilierung, die Auswertung von Codeausschnitten, die Codeunterstützung, Typhierarchien und sofortige Codeersetzung. Diese Funktionen benötigen die spezielle Unterstützung, die durch den Java-Compiler der Workbench (als integralem Bestandteil des inkrementellen Projektbuilders von JDT) bereitgestellt wird, die jedoch in Java-Standard-Compilern nicht verfügbar ist.

Woher stammen Java-Pakete?

Ein Projekt enthält nur Dateien und Ordner. Das Konzept des Java-Pakets wird durch den Klassenpfad eines Java-Projekts ermöglicht (in der Benutzerschnittstelle stellt der Paket-Explorer die Pakete so dar, wie sie durch den Klassenpfad definiert werden). Tipp: Falls die Paketstruktur nicht Ihren Erwartungen entspricht, überprüfen Sie den Klassenpfad. Die Java-Suchinfrastruktur findet nur Deklarationen für und Verweise von Java-Elementen, die sich im Klassenpfad befinden.

Wann wird eine interne JAR-Bibliotheksdatei und wann eine externe JAR-Bibliotheksdatei verwendet?

Eine interne Ressource befindet sich in einem Projekt in der Workbench und wird daher durch die Workbench verwaltet. Interne Ressourcen können - wie andere Ressourcen auch - der Versionssteuerung durch die Workbench unterliegen. Eine externe Ressource ist nicht Bestandteil der Workbench und kann nur mittels Verweis verwendet werden. Beispiel: Eine JRE ist häufig extern und sehr umfangreich, und es besteht kein Bedarf, sie einem VCM-System zuzuordnen.

Wann sollten in einem Java-Projekt Quellenordner verwendet werden?

Jedes Java-Projekt lokalisiert seine Java-Quellendateien über einen oder mehrere Einträge für Quellentypen im Klassenpfad des Projekts. Durch die Verwendung von Quellenordnern können die Pakete eines umfangreichen Projekts in sinnvollen Gruppen verwaltet werden. Außerdem kann auf diese Weise der Quellcode separat von anderen Dateien in demselben Projekt aufbewahrt werden. Die Verwendung von Quellenordnern ist zudem dann sinnvoll, wenn Dateien vorhanden sind (z. B. Dokumentation), die nicht im Buildpfad enthalten sein müssen.

Was sind Quellenzuordnungen und wie werden sie definiert?

Bibliotheken werden als JAR-Dateien gespeichert, die binäre Klassendateien (und vielleicht noch weitere Ressourcen) enthalten. Diese binären Klassendateien stellen Signaturdaten für Pakete, Klassen, Methoden und Felder bereit. Diese Informationen sind für die Ausführung oder Kompilierung ausreichend , enthalten jedoch weit weniger Angaben als der originale Quellcode. Um das Durchsuchen und das Debug von binären Bibliotheken zu vereinfachen, gibt es einen Mechanismus, mit dem einer binären JAR-Datei eine entsprechende JAR-Quellendatei (oder komprimierte Quellendatei) zugeordnet werden kann.

Warum werden alle Ressourcen in den Ausgabeordner (z. B. Ordner 'bin') kopiert?

Wenn Ihr Java-Projekt Quellenordner einsetzt, kopiert der Java-Compiler im Rahmen der Kompilierung der Quellendateien im Projekt Ressourcen, die keine Java-Ressourcen sind, ebenfalls in den Ausgabeordner, damit sie im Klassenpfad des ausgeführten Programms verfügbar sind. Um zu vermeiden, dass bestimmte Ressourcen in die Ausgabeposition kopiert werden, können Sie einen Ressourcenfilter in den Benutzervorgaben für den Java-Compiler aktivieren (Fenster > Benutzervorgaben > Java > Compiler > Build).

Wie kann das Kopieren von Dokumentationsdateien in den Ausgabeordner eines Projekts verhindert werden?

Verwenden Sie Quellenordner und stellen Sie alle Ressourcen, die nicht in den Ausgabeordner kopiert werden sollen, in einen separaten, nicht im Klassenpfad enthaltenen Ordner. Sie können auch einen Ressourcenfilter in den Benutzervorgaben für den Java-Compiler unter Fenster > Benutzervorgaben > Java > Compiler > Build festlegen. Beispiel: '*.doc'.

Wie wird ein Standardpaket erstellt?

Die Erstellung eines solchen Pakets ist nicht erforderlich. Dateien im Stammordner eines Quellenordners oder Projekts werden so behandelt, als ob sie sich im Standardpaket befinden würden. Eigentlich ist es so, dass jeder Quellenordner ein Fragment des Standardpakets enthalten kann.

Was versteht man unter Refactoring?

Der Begriff 'Refactoring' bezeichnet Programmumsetzungen, bei denen das Verhalten des Programms erhalten bleibt. JDT unterstützt eine Reihe von Umsetzungen, die Martin Fowler in seinem Buch Refactoring: Improving the Design of Existing Code, Addison-Wesley 1999, beschrieben hat.

Wann wird die Funktion 'Deklaration öffnen' (Taste F3) verwendet?

Wenn mithilfe des Compilers das Java-Element ermittelt werden soll, das dem gewählten Quellenbereich entspricht.

Werden die Java-Programminformationen (z. B. Typhierarchie, Deklarationen, Verweise) durch den Java-Builder erzeugt? Werden sie auch dann aktualisiert, wenn die automatische Builderstellung inaktiviert ist?

Die Java-Programminformationen sind vom Java-Builder unabhängig. Sie werden automatisch aktualisiert, sobald Ressourcenänderungen oder Java-Operationen vorgenommen werden. Insbesondere funktionieren alle Funktionen, die durch die Java-Tools bereitgestellt werden (z. B. Typhierarchien, Codeunterstützung, Suche) auch dann weiterhin einwandfrei, wenn die automatische Erstellung inaktiviert ist. Beispielsweise können Sie bei einer umfangreichen Umgestaltung, bei der die Builder inaktiviert werden müssen, weiter die Codeunterstützung verwenden, die die letzten (noch nicht erstellten) Änderungen wiedergibt. Neben der Startfunktion (also der Ausführung und dem Debug) für Programme ist die Auswertung von Codeausschnitten die einzige Funktion, die auf den Java-Builder angewiesen ist.

Nachdem eine Workbench erneut geöffnet wurde, scheint der erste Build nach der Bearbeitung einer Java-Quellendatei sehr lange zu dauern. Woran liegt dies?

Der inkrementelle Projektbuilder für Java-Projekte speichert seinen internen Status in einer Datei, wenn die Workbench geschlossen wird. Beim ersten Build nach dem erneuten Öffnen des Projekts stellt dieser Builder seinen internen Status wieder her. Wenn die entsprechende Datei sehr umfangreich ist, ergibt sich für den Benutzer beim Buildvorgang eine ungewöhnlich lange Verzögerung.

Für eine Klasse wird keine Typhierarchie angezeigt. Was kann man in diesem Fall tun?

Prüfen Sie, ob der Buildklassenpfad richtig definiert wurde. Die Einrichtung eines ordnungsgemäßen Klassenpfads für den Build ist ein wichtiger Punkt im Rahmen der Java-Entwicklung. Ohne einen korrekten Buildpfad kann der Code nicht kompiliert werden. Außerdem sind Sie in einem solchen Fall nicht in der Lage, die Typhierarchien für Java-Elemente anzuzeigen oder zu durchsuchen.

Wie kann die automatische Kompilierung inaktiviert und die Kompilierung bei Bedarf manuell ausgeführt werden?

Inaktivieren Sie das Markierungsfeld Automatisch erstellen auf der Benutzervorgabenseite Öffnet die Benutzervorgabenseite für Arbeitsbereich Allgemein > Arbeitsbereich. Möchten Sie einen Build ausführen, drücken Sie auf Strg+B oder wählen Sie in der Menüleiste Projekt > Alles builden aus.

Tipp: Wenn Sie die 'Automatische Kompilierung' inaktivieren und die Option für manuelle Builds auswählen, können Sie auch das Markierungsfeld Vor Build automatisch speichern auf der Benutzervorgabenseite Öffnet die Benutzervorgabenseite für Arbeitsbereich Allgemein > Arbeitsbereich auswählen.

Bei der Auswahl einer Methode oder eines Feldes in der Ansicht "Gliederung" wird nur die Quelle für dieses Element im Editor angezeigt. Wie kann die Quelle der gesamten Datei angezeigt werden?

Es gibt in der Symbolleiste eine Schaltfläche Nur Quelle des ausgewählten Elements anzeigen. Sie müssen einfach nur diese Schaltfläche inaktivieren.

Können Quellenordner verschachtelt werden?

Ja. Mithilfe von Ausschlussfiltern können verschachtelte Quellenordner erstellt werden.

Können für jeden Quellenordner separate Ausgabeordner definiert werden?

Ja. Wählen Sie das Markierungsfeld Ausgabeordner für Quellenordner zulassen auf der Eigenschaftenseite Java-Buildpfad > Quelle für Ihr Java-Projekt aus.

Kann ein Ausgabe- oder Quellenordner verwendet werden, der sich nicht innerhalb des Arbeitsbereichs befindet?

Ja. Sie können einen verlinkten Ordner erstellen, der auf die gewünschte Position zeigt, und diesen Ordner in Ihrem Java-Projekt als Quellen- oder als Ausgabeordner verwenden.

Zugehörige Konzepte

Java Development Tools (JDT)

Zugehörige Referenzinformationen

Seite 'Java-Buildpfad'
JDT-Glossar