Was ist der Java Klassenpfad?

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).

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s