• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]CLASSPATH setzen

fabilazar

Member
Hallo,
kann mir jmd. sagen in welcher Datei (wie heißt sie und wo liegt sie?) ich meine CLASSPATH setzen muss? Und wie kann ich diese um weitere jars erweitern?
 

Zyrus

Newbie
Hallo,

eine Möglichkeit ist, in der Datei .profile in deinem Home-Verzeichnis (wird bei deiner Anmeldung ausgeführt). Setzen kannst du die Variable z.B. so: export CLASSPATH=<Hier den Pfad eintragen>. Der Pfad sollte zur rt.jar deiner Java-Runtime führen, z.B. /usr/share/java/jre/rt.jar>. Weitere JAR-Archive kannst du einfach mit angeben, wobei jede Angabe durch ein : getrennt wird.

Gruss, Zyrus
 
OP
F

fabilazar

Member
Hallo Zyrus,
danke für deine Antwort.
meine .profile-Datei sieht so aus:
Code:
# Sample .profile for SuSE Linux
# rewritten by Christian Steinruecken <cstein@suse.de>
#
# This file is read each time a login shell is started.
# All other interactive shells will only read .bashrc; this is particularly
# important for language settings, see below.

test -z "$PROFILEREAD" && . /etc/profile

# Most applications support several languages for their output.
# To make use of this feature, simply uncomment one of the lines below or
# add your own one (see /usr/share/locale/locale.alias for more codes)
#
#export LANG=de_DE@euro     # uncomment this line for German output
#export LANG=fr_FR@euro     # uncomment this line for French output
#export LANG=es_ES@euro     # uncomment this line for Spanish output


# Some people don't like fortune. If you uncomment the following lines,
# you will have a fortune each time you log in ;-)

#if [ -x /usr/bin/fortune ] ; then
#    echo
#    /usr/bin/fortune
#    echo
#fi
Sieht für mich so aus als könnte ich sie überschreiben, oder?
Meine JavaRuntime habe ich doppelt. Einmal in /usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar und einmal in /usr/src/packages/BUILD/jdk1.5.0_06/jre/lib/rt.jar, welche ich nehme ist egal nehme ich an?
das würde bedeuten ich muss die CLASSPATH folgendermaßen setzen, inklusive einer weiteren jar-Datei:
Code:
export CLASSPATH=.:/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar:/home/fab/jarArchive/id3lib/mp3.1.jar
 

Zyrus

Newbie
Hallo fabilazar,

also die Standard .profile natürlich nicht überschreiben, nur erweitern. "/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar" ist das richtige Java, das andere sieht für mich nach dem Quellcode des *.rpm aus, braucht man also nicht zum Ausführen von Java-Programmen.

export CLASSPATH=.:/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar:/home/fab/jarArchive/id3lib/mp3.1.jar

sieht gut aus, nur ohne dem ".:" am Anfang.

Alternativ kann man den Classpath auch beim Starten eines Java-Programms angeben:
Code:
java -classpath <Classpath> <Javaklasse mit main()>

Gruss, Zyrus
 
OP
F

fabilazar

Member
okay, danke.
Leider klappt es noch nicht.
Nachdem ich es so in der Shell eingegeben habe
export CLASSPATH=.:/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar:/home/fab/jarArchive/id 3 lib/yajil-0.3.3.jar
bekam ich die Fehlermeldung:
'lib/yajil-0.3.3.jar': not a valid identifier
 

Zyrus

Newbie
Hallo,

export CLASSPATH=.:/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar:/home/fab/jarArchive/id 3 lib/yajil-0.3.3.jar

liegt an den Leerzeichen bei "id 3 lib", einfach mal in "..." setzen. Also so:

Code:
export CLASSPATH=/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar:"/home/fab/jarArchive/id 3 lib/yajil-0.3.3.jar"

Gruss, Zyrus
 
OP
F

fabilazar

Member
Okay vielen Dank für deine Hilfe!
Scheint geklappt zu haben, zumindest bekomme ich keine Fehlermeldung. Die .profile-Datei sieht aber unverändert aus.
??
Wie kann ich die CLASSPATH überprüfen, ob sie jetzt tatsächlich gesetzt wurde?
 

Zyrus

Newbie
Hallo,

Wie kann ich die CLASSPATH überprüfen, ob sie jetzt tatsächlich gesetzt wurde?

In der Konsole: echo ${CLASSPATH}, kommt da nichts, ist die Umgebungsvariable nicht gesetzt. Wenn du aber alles in der .profile eingetragen hast, sollte die aber verändert sein, oder du hast vergessen zu speichern :wink: .

Gruss, Zyrus
 
OP
F

fabilazar

Member
Oh, da hab ich was falsch verstanden.
Ich dachte es reicht, wenn ich es in der Shell eingebe, dass es quasi automatisch mit dem export-Befehl in der .profile-Datei eingetragen wird?
Muss ich dann genau diesen Befehl
export CLASSPATH=/usr/lib/jvm/java-1.5.0-sun-1.5.0_06/jre/lib/rt.jar:"/home/fab/jarArchive/id 3 lib/yajil-0.3.3.jar"
in der .profile-Datei am Ende der Datei eintragen?
Ich glaube so langsam wird es peinlich für mich :lol:
 

Zyrus

Newbie
Hallo,

ja genau, die Sache mit export ... in die .profile eintragen. Dann funktioniert das auch nach einem erneuten Anmelden.

Gruss, Zyrus
 
OP
F

fabilazar

Member
Vielen Dank für deine Geduld. So wie es ausschaut, hat es jetzt auch funktioniert
den beim
Code:
echo ${CLASSPATH}
bekomme ich jetzt den Pfad.
Dankeschön dafür!

Beim Compilieren aus der Shell wird die in dem CLASSPATH aufgenommene jar-Datei trotzdem nicht gefunden :(
package de...id3 does not exist
 
OP
F

fabilazar

Member
Jetzt hat es geklappt :D
Man sollte CLASSPATH doch mit dem . eintragen also so:
export CLASSPATH=.:/usr/...
ansonsten wird das aktuelle Verzeichnis nicht durchsucht :wink:
 
Oben