Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 3. Auflage
 <<    <     >    >>   API  Kapitel 50 - Hilfsprogramme des JDK

50.2 java - Der Interpreter



50.2.1 Aufruf

java [ options ] classname [{ args }]

javaw [ options ] classname [{ args }]

50.2.2 Beschreibung

Der Interpreter java dient dazu, kompilierte Java-Programme auszuführen, die als Bytecode in .class-Dateien vorliegen. javaw erfüllt denselben Zweck, erzeugt aber kein Terminalfenster beim Start des Programms und erlaubt nicht die Verwendung der Standard-Streams System.in, System.out und System.err. Beim Aufruf beider Programme wird der Name einer Klassendatei erwartet (ohne die Erweiterung .class). Damit sie ausgeführt werden kann, muß sie eine Klassenmethode main mit folgender Signatur enthalten:

public static void main(String[] args)

Alle Argumente, die nach dem Namen der Klassendatei an java übergeben werden, stehen nach dem Aufruf von main in args zur Verfügung. Der Java-Interpreter wird nach dem Rücksprung aus main beendet, wenn keine eigenen Threads erzeugt wurden. Falls weitere Threads erzeugt wurden, wird er verlassen, nachdem der letzte Vordergrund-Thread beendet wurde.

Da während der Ausführung eines Java-Programms meist weitere Klassendateien benötigt werden, muß der Interpreter wissen, wo diese zu finden sind. Standardmäßig sucht er dabei im systemspezifischen Installationsverzeichnis und im aktuellen Verzeichnis. Die Suchstrategie kann durch Setzen der Umgebungsvariable CLASSPATH oder mit Hilfe der Option -classpath verändert werden. Sollen nur die Standardbibliotheken des JDK verwendet werden, sind weder CLASSPATH noch -classpath erforderlich. Weitere Informationen zu CLASSPATH-Einstellungen finden Sie in Abschnitt 13.2.2.

In der Windows-Version des JDK 1.2 ist ein Just-In-Time-Compiler (kurz JIT) enthalten, der standardmäßig aktiviert ist. Der JIT übersetzt zur Laufzeit des Programmes häufig benötigte Bytecodes in Maschinencode und beschleunigt so die weitere Ausführung des Programms. Soll der JIT deaktiviert werden, kann die Umgebungsvariable JAVA_COMPILER oder die Systemeigenschaft java.compiler auf den Wert NONE gesetzt werden.

Seit dem JDK 1.3 ist der adaptive Just-In-Time-Compiler HotSpot fester Bestandteil der Auslieferung. Er kann mit der Option -Xint aus- und mit -Xmixed angeschaltet werden. Standardmäßig ist er aktiviert. Soll im JDK 1.3 anstelle von HotSpot der JIT des JDK 1.2 verwendet werden, kann dieser mit der Option -Xclassic aktiviert werden. Seit der Version 1.3.1 ist zusätzlich der bis dahin nur separat erhältliche Server-Hotspot im JDK enthalten. Er führt weitergehende (und kostspieligere) Optimierungen aus als der Client-Hotspot und ist vorwiegend für langlaufende Applikationen ohne direkte Benutzeroberfläche gedacht. Er kann mit der Option -server aktiviert werden, während der Client-Hotspot auf -client reagiert.

 JDK1.1-1.4 

50.2.3 Optionen

Option Bedeutung
-classpath path Gibt die Liste der Pfade zur Suche von Klassendateien an. Alternativ kann auch die Abkürzung -cp verwendet werden.
-prof Aktiviert in Prä-1.2-Versionen des JDK den Profiler im Interpreter, der Informationen über das Laufzeitverhalten der Anwendung in die Datei java.prof schreibt. Ab dem JDK 1.2 wird der Profiler mit der Option -Xprof bzw. -Xrunhpof aktiviert. Genaue Informationen zur Verwendung des Profilers sind in Abschnitt 49.3 zu finden.
-version Ausgabe der Versionsnummer.
-help Ausgabe eines kurzen Hilfetextes.
-verbose Gibt bei jedem Laden einer Klasse eine Meldung auf der Console aus. Seit dem JDK 1.3 können wahlweise die Schalter :class, :gc oder :jni angehängt werden. :class entspricht dabei der Voreinstellung, :gc dokumentiert die Garbage-Collector-Aufrufe und :jni zeigt die Verwendung von Native Methods.
-verbosegc Veranlaßt den Garbage Collector bei jedem Aufruf zur Ausgabe einer Nachricht.
-DpropName=value Weist dem Property propName den Wert value zu.
-Xms n Spezifiziert die Größe des beim Start allozierten Speichers. n ist dabei eine Ganzzahl mit einer der Erweiterungen »k« oder »m«. Die Buchstaben stehen für die Größenordnungen kilo und mega. Die Standardeinstellung ist versions- und betriebssystemabhängig, typische Werte sind 1m oder 2m.
-Xmx n Spezifiziert die Größe des maximal allozierbaren Speichers. n ist dabei eine Ganzzahl mit einer der Erweiterungen »k« oder »m«. Die Standardeinstellung ist versions- und betriebssystemabhängig, typische Werte sind 16m oder 64m.
-enableassertions Schaltet Assertions an (Abkürzung -ea). Dieser Schalter wird ausführlich in Abschnitt 6.4.1 erklärt.
-disableassertions Schaltet Assertions aus (Abkürzung -da). Dieser Schalter wird ausführlich in Abschnitt 6.4.1 erklärt.

Tabelle 50.2: Optionen des Java-Interpreters

In den 1.1er Versionen des JDK gab es ein Programm jre, das dazu diente, den Interpreter des Laufzeitsystems zu starten (Java Runtime Environment). Dieses Programm ist in der aktuellen JDK-Version nicht mehr vorhanden, sondern wird durch das Programm java ersetzt. Auch der in früheren Versionen vorhandene debugging-fähige Interpreter java_g existiert seit dem JDK 1.2 nicht mehr.

 JDK1.1-1.4 


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 3. Auflage, Addison Wesley, Version 3.0.1
 <<    <     >    >>   API  © 1998-2003 Guido Krüger, http://www.javabuch.de