Der Classpath
Ein Java - Programm kann nur Klassen und Resourcen nutzen, die aus dem Classpath geladen werden könnne. Der Classpath umfasst die Verzeichnisse und Archive (Jar- und Zip-Dateien), die dem Java-Classloader bekannt sind. Ohne weiteres gehören dazu:
- Der Bootstrap Classpath: Das sind die Klassen der Java Runtime Umgebung, das ist das Verzeichnis $JAVA_HOME/lib und einige der Jar-Dateien, die in diesem Verzeichnis sind, darunter die rt.jar, die die Klassen der Java Api enthält.
- Der Extension Classpath: Das sind alle Jar-Dateine in $JAVA_HOME/lib/ext (nicht aber das Verzeichnis selbst). Hier können Erweiterungen der Java – VM in Form von Jar-Archiven untergebracht werden (Media-Api, Advanced Image u.s.w.). Sie können auch eigene Jar-Archive hier unterbringen, sie werden dann gefunden.
- Der Benutzer Classpath: Der Benutzer-classpath ist heute das, was in Java 1 als Classpath bezeichnet wurde. Dazu gehört zunächst einmal das aktuelle Verzeichnis, in dem ein Programmge startet, oder, falls eine Jar-Datei gestartet wurde, diese Jar-Datei (und nicht das aktuelle Verzeichnis).
Nur den Benutzer-Classpath können Sie ändern bzw. ihren Erfordernissen entsprechend anpassen. Dazu gibt es drei Möglichkeiten:
- Sie definieren eine Umgebungsvariable (ähnlich der PATH-Variablen) namens CLASSPATH und starten Ihr Java-Programm in der Umgebung, die diese Variable hat.
- Sie starten Java bzw. den Compiler mit der Classpath Option (-classpath oder kurz –cp). Eine eventuell vorhandene Umgebungsvariable CLASSPATH wird in diesem Fall ignoriert; ebenfalls gehört das aktuelle Verzeichnis dann nicht ohne weiteres zum Classpath (Sie können es natürlich angeben).
- Sie starten ein Jar-Datei mit der Option. In diesem Fall wird die CLASSPATH Umgebungsvariable ignoriert, das aktuelle Verzeichnis gehört nicht zum Classpath und auch die Option –cp lässt sich nicht zusammen mit –jar verwenden. Sie können aber in der Manifest-Datei weitere Jar-Dateien und Verzeichnisse als Classpath eintragen. Mehrere Jars sind durch Leerzeichen zutrennen. Beispiel: myprog.jar enthält folgenden Manifesteintrag:
Class-Path: . lib/mylib.jar
Classpath ist hier die aufgerufene Java Datei (myprog.jar), eine Jar - Datei "mylib.jar" im Unterverzeichnis "lib" sowie das aktuelle Verzeichnis, aus dem das Programm gestartet wurde.
Da man hier mitrelativen Pfaden arbeiten kann, ist das sicherlich die bevorzugte Methode, wenn es um die Auslieferung einer Applikation geht.
Kommentare:
Sie müssen angemeldet sein um eine Nachricht zu erstellen. Anmelden »