Problem beim Setzen von JAVA_HOME

7

In ~/.bash_profilestelle ich folgendes ein:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/bin/java
export PATH=$PATH:/usr/lib/jvm/java-7-openjdk-i386/bin

Nach dem Speichern und Schließen lief ich:

sudo su
source .bash_profile

echo $PATH bringt

root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-7-openjdk-i386/bin

which java ist

/usr/bin/java

Aber wenn ich Smartgit starte, gibt es die folgende Warnung

ip@ubuntu:/usr/share/smartgithg/bin$ ./smartgithg.sh 
Warning: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java/bin/java does not exist

Warum verweist 'welches Java' nicht auf das neue Java, das ich installiert habe? Und warum enthält $ PATH bin/java/zweimal?

user1662013
quelle
Hast du das gelöst? Ich habe das gleiche Problem?
rubo77

Antworten:

7

Sie können die Java-Version mit dem update-alternativesBefehl auswählen .

Führen Sie den folgenden Befehl im Terminal aus.

sudo update-alternatives --config java

Und geben Sie die Auswahlnummer ein, die Sie verwenden möchten.

So was:

Java-Version auswählen

Achtung: Die obige Beschreibung ist das Verfahren zum Ändern einer Standardversion. Es ist keine Antwort auf diese Frage, sollte Ihnen aber dabei helfen, das JAVA-Zuhause einzurichten

byaruhaf
quelle
Grosses Dankeschön. wikihow.com war eine große Hilfe
user1662013
Mein Javahome ist noch leer. sry aber muss -1 dies ... wenn ich könnte
Zaibis
1

Sie haben Ihre JAVA_HOMEVariable in Ihrer ~/.bash_profileDatei falsch festgelegt . Ändern Sie Ihre JAVA_HOMEVariable in:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/

und dann tun source ~/.bash_profile

Dies sollte Ihr Problem beheben.

Job in
quelle
0

Ubuntu verwendet das update-alternativesSystem, um zu verwalten, welche Installation des Java JDK oder JRE verwendet werden soll. Auf diese Weise können Sie mehrere Java-Versionen installieren, aber dennoch steuern, welche standardmäßig verwendet wird.

Aus diesem Grund which javawird die von Ihnen installierte Version nicht angezeigt. /usr/bin/javaist nur ein Symlink. Wenn Sie rennen ls -l /usr/bin/java, sehen Sie etwas wie:

lrwxrwxrwx 1 root root 22 Jul  4  2013 /usr/bin/java -> /etc/alternatives/java

und wenn Sie dem Pfad folgen, indem ls -l /etc/alternatives/javaSie laufen , sehen Sie etwas wie:

lrwxrwxrwx 1 root root 39 Jul 15  2013 /etc/alternatives/java -> /usr/lib/jvm/java-7-oracle/jre/bin/java

Der genaue Pfad hängt jedoch davon ab, welche Version Sie ausgewählt haben.

Mit diesem Befehl können Sie auswählen, welche Java-Version Sie ausführen möchten:

sudo update-alternatives --config java

Ihr Pfad enthält bin/javazweimal, weil Sie $JAVA_HOMEfalsch konfiguriert haben . $JAVA_HOMEsollte auf das Stammverzeichnis für Ihre Java-Installation zeigen; in Ihrem Fall , /usr/lib/jvm/java-7-openjdk-i386/. Sie haben es auf die javaBinärdatei selbst gerichtet.

Sie sollten nicht $JAVA_HOMEzu Ihrem hinzufügen müssen , es $PATHsei denn, Sie installieren Java manuell und verwenden es nicht update-alternatives, da /usr/bines sich bereits in Ihrem befindet $PATH.

David Edwards
quelle