Leider stellt das JDK keine graphische Benutzeroberfläche zur Bedienung von Compiler und Interpreter zur Verfügung. Beide Werkzeuge müssen also in einer DOS-Box bedient werden. Am besten, Sie öffnen eine DOS-Box in Ihrem Arbeitsverzeichnis. Dort können Sie dann mit den folgenden beiden Kommandos arbeiten.
javac [ Optionen ] Dateiname.java ...
kompiliert Javadateien nach Bytecode
-classpath Pfad | Verzeichnisse die Klassen enthalten (ignoriert CLASSPATH) |
-d Verzeichnis | Verzeichnis wo .class-Dateien hingeschrieben werden |
-g | erzeugt Zusatzinformationen für den Debugger |
-nowarn | schaltet Warnungsmeldungen ab |
-O | erzeugt optimierten Bytecode |
-verbose | protokolliert Kompilation ausführlich |
java [ Optionen ] Klassenname <Argumente>
interpretiert Bytecode (in .class-Dateien)
-cs, -checksource | Kompiliert Quelldatei neu, falls sie jünger ist als die Klassendatei |
-classpath Pfad | Verzeichnisse, die Klassen enthalten (ignoriert CLASSPATH) |
-v, -verbose | schreibt eine Meldung nach stdout beim Laden einer Klasse |
-verbosegc | Garbage Collector schreibt eine Meldung beim Freigeben von Speicher |
Obwohl Java aussieht wie C oder C++, wurde der Sprachumfang doch stark vereinfacht. Wohltuend ist auch die Kompaktheit des Compilers. Nicht Dutzende von Optionen, die sich auf mehrere hundert Arten kombinieren lassen, sondern nur sechs Optionen stellt javac zur Verfügung. Selbst von diesen sechs braucht man bei einer normalen Installation keine einzige. Der Aufruf von javac sieht folgendermassen aus:
javac [ Optionen ] Dateiname.java ...
dabei bedeuten die eckigen Klammern, dass keine, eine oder mehrere der unten aufgeführten Optionen in einer beliebigen Reihenfolge vorkommen können. Die drei Punkte am Schluss bedeuten, dass auch mehrere Dateien angegeben werden können. Es ist sogar möglich Platzhalter zu verwenden: z.B. javac *.java kompiliert alle .java-Dateien im aktuellen Verzeichnis.
Wenn Sie Klassen importieren wollen, so müssen Sie deren Verzeichnis bekanntgeben. Dies geschieht
durch das Setzen der Umgebungsvariablen CLASSPATH. CLASSPATH besteht aus einer Liste von
Pfadnamen, die mit Semikolon voneinander getrennt sind. z.B.:
.;c:\Projekte\Fraktale\Klassen;c:\java\lib
Wird in einer Quelldatei eine Klasse referenziert, so sucht javac mit folgender Strategie danach:
Vergleichen Sie auch diese Beschreibung mit der Original Referenzseite von JavaSoft.
Der Compiler erzeugt aus Java-Quellcode eine Art Maschinencode, den sogenannten Bytecode. Dieser ist aber nicht direkt durch eine Hardware ausführbar, sondern wird durch den Bytecode-Interpreter java interpretiert. java kann auch als die Implementation der virtuellen Maschine angesehen werden, auf der alle Java-Programme laufen. Dadurch werden die Programme zwar langsamer als wenn sie direkt von der Hardware ausgeführt würden, der Gewinn ist jedoch Portabilität. Es muss für jede Plattform einmal ein Bytecode-Interpreter geschrieben werden. Danach sind alle Java-Programme ausführbar, und zwar unabhängig davon, auf welcher Plattform sie entwickelt wurden. Der Aufruf von java sieht wie folgt aus:
java [ Optionen ] Klassenname <Argumente>
Beachten Sie, dass hier nur noch der Klassenname angegeben werden muss. java erweitert diesen automatisch um die Endung .class. Die Klasse Klassenname wird geladen und deren main-Methode aufgerufen. Sämtliche Argumente (durch Leerzeichen getrennt) werden der main-Methode im Array args[] übergeben.
Die Suche nach anderen Klassen, die beim Laden gelinkt werden, erfolgt auch mittels der Umgebungsvariablen CLASSPATH oder der Option -classpath beim Aufruf des Interpreters.
Bei den Optionen ist java leider nicht ganz so schlank wie der Compiler. Im folgenden sind nur einige wichtige Optionen angegeben, mit denen java aufgerufen werden kann:
Eine komplette Beschreibung finden Sie auf der Original Referenzseite von JavaSoft.
JDK - javac und java - Tips und Hinweise - Lösungsmöglichkeit (OOP)
OOP - Werkzeuge - Referenzen - Fäden - Synchronisation - Applets - Dokumentation
Werkstatt - Bibliographie