Was soll ich mit CLASSPATH anfangen?
Dmitri Rettig
- java
0 Slyh
Hallo,
bislange habe ich die Umgebungsvariable CLASSPATH nicht gebraucht. Jetzt will ich meine Klassen in ein package packen, aber das geht nicht so recht. Ich habe in die Autoexec.bat eingefügt:
SET CLASSPATH=C:\JAVA\CLASSES
Und jetzt?
MfG Dmitri
Hallo,
bislange habe ich die Umgebungsvariable CLASSPATH nicht gebraucht. Jetzt will ich meine Klassen in ein package packen, aber das geht nicht so recht.
Ab JDK 1.2 sollte eigentlich keine CLASSPATH-Umgebungsvariable mehr
notwendig sein. Zumindest nicht in der autoexec.bat
Bei der Installation des JDK speichert das Installationsprogramm die
Position der JRE in der Windows-Registry ab und bezieht die Pfade
daher nicht mehr aus der CLASSPATH-Variable. Allerdings sollte das
bin-Verzeichnis der JDK in der PATH-Variable zu finden sein. Also sowas
wie PATH=c:\jsdk1.4\bin;[..]
Wenn du ein Klasse geschrieben hast, die in einem Package liegt, mußt
du die Klasse über den vollqualifizierten Namen ansprechen. Das Setzen
des Classpaths ist nicht notwendig. Beispiel:
java dies.ist.mein.package.Klassenname
Wichtig ist, daß du in dem Verzeichnis bist, in dem das Verzeichnis
"dies" als Unterverzeichnis zu finden ist. Beispiel:
Deine Verzeichnisstruktur sieht entsprechend dem oberen Beispiel so
aus:
c:\daten\meineJavaKlassen\dies\ist\mein\package\
In dem Verzeichnis "package" liegt nun die Datei mit dem Namen
"Klassenname.class".
Du mußt dich beim Aufruf dementsprechend im Verzeichnis
"c:\daten\meineJavaKlassen" befinden.
Solltest du auf externe Klassen (die nicht unterhalb von
"c:\daten\meineJavaKlassen" liegen) zugreifen wollen, so mußt du
diese der JVM beim Aufruf von java.exe bekannt machen. Und zwar so:
java -classpath c:\externeKlassen\andereKlasse.class dies.ist.mein.package\Klassenname
Die Klasse wird also als Parameter hinter der Option "-classpath"
angegeben. Willst du mehrere externe Klasse einbinden, kannst du diese
per Semikolon trennen.
Ich hoffe du hast das alles so einigermaßen verstanden. Wenn noch
Unklarheiten vorhanden sein sollten, einfach nochmal nachfragen.
Am besten beschreibst du dann aber mal, was du konkret willst.
Gruß
Slyh
Hallo
java -classpath c:\externeKlassen\andereKlasse.class dies.ist.mein.package\Klassenname
Die Klasse wird also als Parameter hinter der Option "-classpath"
angegeben. Willst du mehrere externe Klasse einbinden, kannst du diese
per Semikolon trennen.
Falsch. Anzugeben sind nicht die Klassen, sondern nur die Verzeichnisse oder Archive, in denen sich die Klassen bzw die Packages befinden.
Grüße
Daniel