Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 5. Auflage |
<< | < | > | >> | API | Kapitel 51 - Hilfsprogramme des JDK |
In diesem Kapitel wollen wir die wichtigsten Hilfsprogramme des Java Development Kit bzw. Java Runtime Environment vorstellen. Die meisten Programme arbeiten kommandozeilenorientiert und werden aus einer DOS-Box oder einer Shell heraus aufgerufen. Einige von ihnen sind interaktiv und haben eine einfache grafische Oberfläche. Wir wollen die Aufrufsyntax und wichtigsten Optionen der folgenden Programme vorstellen:
javac [ options ] [@filelist | { filename.java }] |
Der Compiler javac übersetzt Sourcecode in Bytecode. Zu jeder Klasse, die innerhalb einer .java-Datei definiert wurde, wird eine eigene .class-Datei erzeugt. Der Compiler wacht automatisch über die Abhängigkeiten zwischen den Quelldateien. Wird beispielsweise in einer Klasse X in der Datei X.java eine Klasse Y, die in Y.java liegt, verwendet, so wird Y.java automatisch mit übersetzt, wenn es erforderlich ist. Anstelle der Liste von Dateinamen kann nach einem @ auch eine Textdatei angegeben werden, in der die zu übersetzenden Dateien durch Whitespaces getrennt angegeben werden.
Option | Bedeutung |
-version | Ausgabe der Versionsnummer (seit der Version 5.0 verfügbar). |
-classpath path | Gibt die Liste der Pfade zur Suche von Klassendateien an. Dieser Schalter übersteuert den Wert einer eventuell gesetzten Umgebungsvariable CLASSPATH. Bezüglich der Auswirkungen des Klassenpfades in den unterschiedlichen JDK-Versionen lesen Sie bitte Abschnitt 13.2.2. |
-g | Aktiviert die Erzeugung von Debug-Informationen. Dieser Schalter sollte aktiviert werden, bevor ein Programm debugt wird. |
-nowarn | Deaktiviert die Ausgabe von Warnungen. |
-O | Schaltet den Code-Optimierer an. Dessen Fähigkeiten waren allerdings nie besonders ausgeprägt und beschränkten sich bis zum JDK 1.2 vorwiegend auf das Expandieren von Methodenaufrufen. In der Dokumentation zum JDK 1.3 steht sogar die Anmerkung Note: the -O option does nothing in the current implementation of javac and oldjavac, und seit dem JDK 1.4 ist der Schalter gar nicht mehr dokumentiert. |
-verbose | Aktiviert die Ausgabe von Meldungen über geladene Quell- und Klassendateien während der Übersetzung. |
-depend | Normalerweise wird eine Quelldatei neu kompiliert, wenn das Datum der letzten Änderung nach dem Änderungsdatum der Klassendatei liegt oder wenn die Klassendatei ganz fehlt. Mit Hilfe dieses Schalters wird diese Entscheidung auf der Basis von Headerinformationen in der Klassendatei auf eine zuverlässigere Weise getroffen. Der Übersetzungsvorgang wird aber unter Umständen langsamer. Dieser Schalter war bis zum JDK 1.1 vorhanden, wird aber mittlerweile nicht mehr unterstützt. Die neueren Compiler erkennen die Abhängigkeiten weitgehend automatisch. |
-deprecation | Sorgt dafür, dass bei jedem Aufruf einer als deprecated markierten Methode (@deprecated-Marke im Dokumentationskommentar) zusätzliche Informationen über mögliche Workarounds ausgegegeben werden. Alle Methoden aus älteren JDKs, die im aktuellen JDK nicht mehr verwendet werden sollen, werden mit diesem Flag markiert. |
-target version | Es wird Bytecode erstellt, der zu der angegebenen Version des Laufzeitsystems kompatibel ist. |
-source version | Es wird Sourcecode akzeptiert, der zu der angegebenen Version kompatibel ist. Dieser Schalter ist ab JDK-Version 1.4 verfügbar, er wird in Abschnitt 6.4.1 erläutert. Auch für die sprachlichen Neuerungen der J2SE 5.0 wird diese Option benötigt (in der Form "-source 1.5"). |
-Xlint | Steht ab der J2SE 5.0 zur Verfügung und aktiviert eine Reihe von Warnungen, die anzeigen, dass der Quelltext Konstrukte enthält, die zwar legal, aber unter Umständen problematisch sind. Als Beispiel wird in der Dokumentation eine Klasse genannt, die zwar das Interface Serializable implementiert, aber keine eigene serialVersionUID zur Verfügung stellt. |
Tabelle 51.1: Optionen von javac
Titel | Inhalt | Suchen | Index | DOC | Handbuch der Java-Programmierung, 5. Auflage, Addison Wesley, Version 5.0.2 |
<< | < | > | >> | API | © 1998, 2007 Guido Krüger & Thomas Stark, http://www.javabuch.de |