23.2Die Java-Laufzeitumgebung 

Der Java-Interpreter java führt den Java-Bytecode in der Laufzeitumgebung aus. Dazu sucht der Interpreter in der als Parameter übergebenen Klassendatei nach der speziellen statischen main(String[])-Methode. Der allgemeine Aufruf ist:
Ist die Klasse in einem Paket deklariert, muss der Name der Klasse voll qualifiziert sein. Liegt die Klasse Main etwa im Paket com.tutego, also im Unterverzeichnis com/tutego, muss der Klassenname com.tutego.Main lauten. Die benötigten Klassen muss die Laufzeitumgebung finden können. Die JVM wertet wie der Compiler die Umgebungsvariable CLASSPATH aus und erlaubt die Angabe des Klassenpfades durch die Option -classpath.
23.2.1Schalter der JVM 

Diverse Schalter sind bei der Laufzeitumgebung möglich:
Tabelle 23.2Optionen des Interpreters java
[»]Hinweis
Je länger es die JVM von Oracle gibt, desto länger wurde die Liste der Optionen. http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html listet diese je nach Version kurz auf.
Class-Path-Wildcard
Die Option -cp erweitert den Klassenpfad durch Java-Archive (.jar-Dateien) und einzelne Klassendateien (.class-Dateien). Der Class-Path-Wildcard über * erlaubt eine noch einfachere Angabe von Java-Archiven. So fügt folgende Angabe alle Java-Archive im Verzeichnis lib dem Klassenpfad hinzu:
Zusatzoptionen
Mit der Option -X lassen sich weitere Schalter setzen und dann der Laufzeitumgebung Zusatzanweisungen geben, etwa über den maximal zu verwendenden Speicher. Ein interessanter Schalter ist –XshowSettings, der die Zustände der Standardeigenschaften ausgibt. Das ist sehr nützlich, um etwa abzulesen, welche Pfade gesetzt sind. Angewendet auf das Quadratprogramm aus Kapitel 1, »Java ist auch eine Sprache«, ergibt sich dann:
VM settings:
Max. Heap Size (Estimated): 884.00M
Ergonomics Machine Class: client
Using VM: Java HotSpot(TM) 64-Bit Server VM
Property settings:
awt.toolkit = sun.awt.windows.WToolkit
file.encoding = Cp1252
file.encoding.pkg = sun.io
…
Locale settings:
default locale = Deutsch
default display locale = Deutsch (Deutschland)
default format locale = Deutsch (Deutschland)
available locales = , ar, ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO,
ar_KW, ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SD,
…
Quadrat(1) = 1
Quadrat(2) = 4
Quadrat(3) = 9
Quadrat(4) = 16
[»]Hinweis
Neben den einfachen -X-Optionen gibt es weitere spezielle HotSpot-Optionen, die mit -XX gesetzt werden. Zunächst müssen sie mit -XX:+UnlockDiagnosticVMOptions freigeschaltet werden. Dann lässt sich zum Beispiel mit -XX:+PrintAssembly[ 274 ](http://wikis.oracle.com/display/HotSpotInternals/PrintAssembly) der von HotSpot generierte Assemblercode ausgeben (allerdings nur, wenn die hsdis-i386.dll im Pfad ist).
23.2.2Der Unterschied zwischen java.exe und javaw.exe 

Unter einer Windows-Installation gibt es im Java-JDK für den Interpreter zwei ausführbare Dateien: java.exe und javaw.exe – java.exe stellt die Regel dar. Der Unterschied besteht darin, dass eine über die grafische Oberfläche gestartete Applikation mit java.exe im Unterschied zu javaw.exe ein Konsolenfenster anzeigt. Ohne Konsolenfenster sind mit javaw dann auch Ausgaben über System.out/err nicht sichtbar.
In der Regel nutzt ein Programm mit grafischer Oberfläche während der Entwicklung java und im Produktivbetrieb dann javaw.