09.03.2017
Programmiert man in Java, gibt man am Anfang jeder Klasse an, zu welchem Paket eine Klasse gehört.
import ch.studiprojekt.SuperAlgorithmus;
oder für alle Klassen in einem Paket:
import ch.studiprojekt.*;
Verwendet man die Klasse nun im Programm, weiss die Java Virtual Machine (JVM), wo sie diese Klasse bzw. die kompilierte Klasse (die .class Datei) suchen muss.
SuperAlgorithmus besterVariablenNameEver = new SuperAlgorithmus();
Es wäre nun nicht sehr praktisch für die JVM, wenn der gesamte Computer nach der Klasse durchsucht werden muss. Daher gibt man an, an welchen Orten sie suchen muss. Dazu gibt man dem Java Klassenpfad / Classpath eine Liste von Ordnern und .jar Dateien an.
Es braucht nur den obersten Ordner
Will man jetzt die Klasse „ch.studiprojekt.SuperAlgorithmus“ der JVM angeben, wäre es mühsam, wenn man das für jede Klasse machen muss. Daher gibt man einfach den Oberordner an, wo die JVM alle Klassen finden kann.
Obwohl die .class Datei im Ordner „Klassen/ch/studiprojekt/SuperAlgorithmus“ liegt, muss man im im Klassenpfad nur den Ordner „Klassen“ hinzufügen.
Hat man eine Applikation als .jar Datei gebündelt, stellt man diese in den lib Ordner des Projekts. Im Klassenpfad fügt man nun die Datei „libs/MeineApp.jar“ hinzu. So weiss die JVM, dass diese .jar Datei existiert und man dort nach Code nachschauen kann.
Der Klassenpfad beinhaltet also .jar Dateien plus Pfade zu den obersten Stufen der Ordnerhierarchie.
Anpassen des Klassenpfads in Windows und Unix
Um in Windows den Klassenpfad zu ändern, geht man auf Systemsteuerung -> Benutzerkonten -> Eigene Umgebungsvariablen ändern.
In Unix macht man folgendes:
export CLASSPATH=/home/myaccount/myproject/lib/MeineApp.jar: /home/myaccount/myproject/klassen/
Denken Sie aber daran, dass diese Einstellungen global sind, was nicht immer Sinn macht. Oftmals macht es darum mehr Sinn, wenn man den Build Pfad des Projekts anpasst, um Libraries und Ordner hinzuzufügen (direkt in Eclipse oder IntelliJ).