Benutzung von javac und java
- Die Option -d dient zur Angabe eines alternativen Pfades für die Class-Dateien, wenn sie das erste mal generiert werden durch das javac Kommando
- Die Option -d kann ein paket-abhängiges Ziel für die Class-Dateien on-the-fly erzeugen, wenn dass root Paket-Verzeichnis bereits existiert.
- Die Option -D in Verbindung mit dem Kommando java kann dazu benutzt werden um Systemeigenschaften zu setzen.
- Systemeigenschaften setzen sich aus name=value Paaren zusammen, die direkt hinder der -D Option angegeben werden müssen, z.B. java -Dmyproperty=myvalue
- Command-line Argumente werden immer als Strings behandelt.
- Das java command-line Argument 1 wird in ein Array als Element 0 gesteckt, Argument 2 als Element 1 usw.
Suchen mit java und javac
- Beide java und javac benutzen die gleichen Algorithmen um nach Klassen zu suchen.
- Die Suche beginnt an dem Ort, der die Klassen die standartmäßig in J2SE enthalten sind beinhaltet.
- Benutzer können alternative Orte zur Suche definieren, in dem sie Classpaths benutzen
- Der Default-Classpath kann definiert werden mit hilfe von OS Umgebungsvariablen.
- Ein Classpath kann deklariert werden auf der Kommandozeile und überschreibt den Default-Classpath
- Ein einzelner Classpath kann viele verschiedene Suchorte definieren
- In Unix wird ein Classpath mit forward slashes (/) zur Trennung von Verzeichnissen in der Pathangabe benutzt. In Windows, werden backslashes () benutzt.
- In Unix werden Doppelpunkte (:) benutzt um mehrere Classpaths voneinander zu trennen. In Windows werden Semikolons (;) dazu benutzt.
- Um in einem Classpath das momentane Verzeichnis als Suchort zu spezifizieren benutzen man den Punkt (.)
- Wird in einem Classpath eine Klasse gefunden, wird die Suche beendet, dadurch ist die Reihenfolge der Suchorte wichtig.
Pakete und Suche
- Wenn eine Klass in ein Paket gesteckt wird, muss ihr vollqualifizierter Name benutzt werden.
- Ein import-Ausdruck ist ein Alias für den vollqualifizierenden Namen der Klasse
- Damit eine Klasse lokalisert werden kann, muss der vollqualifizierte Name eine enge Beziehung mit der Verzeichnisstruktur, in der die Klasse ist, besitzen.
- Ein Classpath kann relative und absolute Pathe besitzen.
- Ein absoluter Path beginnt mit / oder .
- Nur das letzte Verzeichnis in einem vorgegebenen Path wird durchsucht
JAR Dateien
- Eine komplette Verzeichnisstruktur kann in einer JAR-Datei archiviert werden.
- JAR-Datreien können mit javac und java durchsucht werden.
- Wenn eine JAR-Datei in einem Classpath beinhaltet ist, dann muss nicht nur das Verzeichnis angegeben werden, in dem sich die JAR-Datei befindet, sonder auch der Name der JAR-Datei .
- Für Testzwecke können JAR-Dateien auch in …/jre/lib/ext abgelegt werden, das sich irgendwo innerhalb der Java Verzeichnisbaums auf der Maschine befindet.
Static Imports
- Der Ausdruck eines statischen Imports schaut folgendermaßen aus: import static
- Statische Imports können zum Anlegen von Shortcuts für static members (statische Variablen, Konstanten und Methoden)für jede Klasse benutzt werden.