4.8.5 | Die Auflösung von Paketnamen |
Die Zuordnung von Paketbezeichnern zu Dateinamen erfolgt in zwei Schritten:
- Zunächst werden die Punkte (.) des in der import-Anweisung angegebenen Paketnamens durch das Zeichen ersetzt, das in der System-Eigenschaft file.separator eingetragen ist. Auf UNIX-Systemen ist dies der Schrägstrich, unter Windows der Backslash (\). Somit wird der Paketname
projects.editor.spellcheckerauf UNIX-Systemen in den folgenden Verzeichnisnamen umgesetzt:projects/editor/spellcheckerDaher müssen die Unterpakete eines Pakets auch in Unterverzeichnissen stehen. Das gilt auch für Pakete, die gemäß der im vorletzten Abschnitt beschriebenen Konvention benannt sind. Die Klassen fürCOM.FOO.projects.editor.spellcheckermüssen sich also im VerzeichnisCOM/FOO/projects/editor/spellcheckerbefinden. An den Beispielen sieht man, dass sich aus diesem Schritt immer relative Pfadnamen ergeben.- Beim Suchen nach einem Paket wird dieser relative Pfad der Reihe nach an die Verzeichnisse angehängt, die in der Umgebungsvariablen CLASSPATH eingetragen sind.
Der Compiler oder die Virtual Machine verwenden dann den ersten Pfad, unter dem sich das gesuchte Paket befindet. Falls unter mehreren Pfaden dieselben Paket- oder Klassenbezeichner existieren, wird daher immer die Klasse oder das Paket eingebunden, das zuerst gefunden wird.
Das Gleiche gilt analog auch für JAR-Archive, die im CLASSPATH eingetragen sind. Auch diese Archive werden der Reihe nach durchsucht, und es wird das erste Archiv benutzt, das die gesuchte Klasse enthält.