Systemvariablen - ich versteh' die Welt nicht mehr :(

  • Themenstarter Themenstarter jagdfalke
  • Beginndatum Beginndatum
J

jagdfalke

Guest
Hi,
ich will unter Suse 10.0 (sry Vodoo :D) das neuste Java (1.5.0) installieren, weil standardmäßig noch das 1.4.2 drauf ist. bla bla bla, es ist installiert und befindet sich unter /usr/java/jdk1.5.0_06.

Dann habe ich eine Datei names /etc/profile.local erstellt und hiermit gefüllt:
JAVA_BINDIR=/usr/java/jdk1.5.0_06/bin
JAVA_HOME=/usr/java/jdk1.5.0_06/
JAVA_ROOT=/usr/java/jdk1.5.0_06/
JDK_HOME=/usr/java/jdk1.5.0_06/
JRE_HOME=/usr/java/jdk1.5.0_06/
PATH=`echo $PATH|sed 's|:/usr/lib/java/bin|:/usr/java/jdk1.5.0_06/bin|'`
export JAVA_BINDIR
export JAVA_HOME
export JDK_HOME
export JRE_HOME
export JAVA_ROOT
export PATH
so wie es in so ner Anleitung, die ich im Internet gefunden habe stand.

Wenn ich jetzt in der Konsole set | grep -i java eingebe kommt das hier:
JAVA_BINDIR=/usr/java/jdk1.5.0_06/bin
JAVA_HOME=/usr/java/jdk1.5.0_06/
JAVA_ROOT=/usr/java/jdk1.5.0_06/
JDK_HOME=/usr/java/jdk1.5.0_06/
JRE_HOME=/usr/java/jdk1.5.0_06/

Also die Java Pfade sind alle richtig gesetzt oder? Jetzt bring mit aber ein java -version, dass noch die 1.4.2er Version installiert ist. Check ich nicht, ihr ?

mfg
jagdfalke
 
Was sagt den "which java"? Wahrscheinlich steht vorher in deiner Path variable noch der Pfad zur alten Java Umgebung drin. Was gibt denn "echo $PATH" aus?.
 
Oh, also "which java" gibt
aus. Das sollte schonmal nicht so sein.
Und "echo $PATH":
/home/Mathias/bin:/usr/local/bin:/usr/bin:/sbin:/usr/X11R6/bin:/usr/sbin:/bin:/ sr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/jvm/jre/bin:/usr/lib/mit/bin:/us /lib/mit/sbin
Ok die sind schonmal komplett falsch gesetzt. Aber ich weiß nicht in welcher Datei dieser Murks fabriziert wird. Weißt du das?

mfg
jagdfalke
 
Also ich hab jetzt 1.4.2 per Yast2 gelöscht. In PATH hat sich nichts gaändert, die Java-Pfade sind auch noch gleich. Allerdings kommt jetzt das hier:
linux:/home/Mathias # java -version
bash: java: command not found
linux:/home/Mathias # javac
bash: javac: command not found

Also jetzt geht garnix mehr :D

mfg
jagdfalke
 
Du musst jetzt nurnoch das neue Java-Verzeichnis an $PATH anhängen.
Ein kleines Script ala
PATH="${PATH}:/usr/java/jdk1.5.0_06/bin"
im Autostart müsste reichen.
 
Ja des sehe ich schon ein.
Aber was meinst du mit Autostart??? Bin noch nicht so lange mit Linux unterwegs. Hab also keine Ahnung was du mit Autostart meinst. Ich kenn das halt von Windows aber da läuft das scheinbar irgenwie anders.

mfg
jagdfalke
 
Hi,

Das Problem ist einfach zu lösen. Vllt hört sich das im folgenden kompilziert an, es ist aber einfacher als man denkt:

Zunächst einmal: Es gibt einen Unterschied zwischen dem Java SDK (Software Developement Kit) und der JRE (Java Runtime Environement). Bei Suse ist normalerweise nur die JRE (also die Java Laufzeitumgebung, die zum Ausführen der Programme/Applets benötigt wird) vorinstalliert. Es stellt sich nun die Frage, was du überhaupt willst.

Ich denke mal, dass du das SDK installieren willst (also die Programmsammlung zum Entwickeln von Software).
Es ist jedoch wichtig, dass du sowohl das neueste SDK sowie die neueste JRE installiert hast, sonst kannst du die von dir entwickelten Programme nicht ausführen (Programme die mit dem 1.5 Compiler kompiliert wurden müssen auch mit der dazugehörigen Laufzeitumgebung ausgeführt werden).

Was du jetzt tun musst:

Mit Yast die alte JRE (1.4.2 müssts glaub ich sein) löschen.
Die neueste JRE downloaden (einfach googlen, dann kommst zu ner Schritt für Schritt Anleitung von Sun - auch für Linux, sogar mit rpm Paket) und installieren.
Das SDK 1.5 installieren. Dazu müssen wie gesagt, die Umgebungsvariablen richtig gesetzt werden.

Die Path-Variable der Konsole legt nämlich fest, in welchem Verzeichnis standartmäßig nach dem auszuführenden Programm gesucht wird. In dieser Variable werden im Prinzip nur Pfadangaben gespeichert, die dann beim Programmaufruf, nach dem zu startenden Programm durchsucht werden. Ansonsten müsste man jedes Mal den Kompletten Pfad zum Compiler voranstellen *kotz*.

Die PATH Umgebungsvariable kann man in: /etc/profile oder /etc/profile.local ändern.
Der Einfachheit halber suchst du in der Datei /etc/profile also nach der Path Variable und ergänzt sie durch " :/DEINPFAD/Java/jdk1.5.0_06/bin ". Bin mir grade nicht sicher ob das mit dem jdk1.5.0... usw stimmt, aber da muss halt der Pfad zu dem "bin"-Verzeichnis hin. Im bin Verzeichnis werden ja immer die "Startdateien" (also auch die Datei für den Compiler) gespeichert.

In der Konsole kann man die Änderungen mit "echo $PATH" überprüfen.

Jetzt sollte alles funktionieren. Lass hören obs geklappt hat.


mfG
 
Ich habe jetz folgendes in profile.local geschrieben:
PATH="${PATH}:/usr/java/jdk1.5.0_05/bin
JAVA_BINDIR=/usr/java/jdk1.5.0_05/bin
JAVA_HOME=/usr/java/jdk1.5.0_05
JAVA_ROOT=/usr/java/jdk1.5.0_05
JDK_HOME=/usr/java/jdk1.5.0_05/
JRE_HOME=/usr/java/jdk1.5.0_05/jre
export JAVA_BINDIR
export JAVA_HOME
export JAVA_ROOT
export JDK_HOME
export JRE_HOME
export PATH

Dann hab ich neu gestartet und geschaut ob die Variablen stimmen. PATH ist unverändert und die anderen Variablen sind leer :(
Muss man dem noch sagen, dass er profile.local auch laden soll? Oder macht der das automatisch wenn die Datei existiert?

EDIT:
Habs raus: Es hat ein " in der 1. Zeile gefehlt :D


mfg
jagdfalke
 
Und sonst funktioniert alles?

..btw... hab ich mal gehört, dass man auch noch die CLASSPATH Variable (?) ändern muss, hat bei mir jedoch auch ohne funktioniert.
 
Zurück
Oben