So legen Sie die Standard-Java-Version fest

8

Ich habe Java 6 unter Ubuntu 11.10 verwendet, möchte aber jetzt auf Version 7 aktualisieren. Ich habe Version 7 über PPA wie hier beschrieben installiert . Wenn ich renne

sudo update-alternatives --config java

Ich erhalte folgende Ausgabe:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/jre/bin/java   64        auto mode
  1            /usr/lib/jvm/java-6-sun/jre/bin/java      63        manual mode
* 2            /usr/lib/jvm/java-7-oracle/jre/bin/java   64        manual mode

Ebenso, wenn ich renne:

sudo update-alternatives --config javac

Ich bekomme die Ausgabe:

  Selection    Path                                  Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-7-oracle/bin/javac   64        auto mode
  1            /usr/lib/jvm/java-6-sun/bin/javac      63        manual mode
* 2            /usr/lib/jvm/java-7-oracle/bin/javac   64        manual mode

Es sieht also so aus, als ob Version 7 bereits die Standardeinstellung ist. Aber wenn ich auch renne

java -version

oder

javac -version

Die Ausgabe zeigt an, dass Version 6 immer noch die Standardeinstellung ist. Wie kann ich die Standardeinstellung auf Version 7 setzen?

Dónal
quelle
Werfen Sie einen Blick auf Java
Mitch
@Mitch danke, aber es heißt nur zu verwenden update-alternatives, was ich bereits versucht habe
Dónal
hast du sudo apt-get install oracle-java7-set-defaultund neu gestartet ?
Eliran Malka
1
Zu Ihrer Information, 11.10 ist das Ende des Lebens.
Thomas Ward

Antworten:

4

Gemäß dieser Antwort: Wie wird die Standard-Java-Version festgelegt?

Versuchen Sie zuerst, den expliziten Pfad zusammen mit update-alternatives --installanzugeben, und führen Sie dann aus update-alternatives, um Ihre Auswahl zu treffen:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-oracle/jre/bin/java" 1

sudo update-alternatives --config java

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-oracle/bin/javac" 1

sudo update-alternatives --config javac
Aaron
quelle
3

Sie müssen auch einstellen javac.

sudo update-alternatives --config javac
Paradiesstaub
quelle
1

Ich hatte das gleiche Problem. Ich hatte sun jdk6 installiert. Nach

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws

Ein Neustart war für mich notwendig. Dann hat es funktioniert.

Bearbeiten: Mir wurde klar, dass es nicht ausreichte, die obigen Schritte auszuführen.

Ich musste auch die Umgebungsvariable bearbeiten:

    sudo nano /etc/environment

Und fügen Sie hinzu (eine andere Java-Version erfordert eine andere Zeichenfolge):

    JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
Chris S.
quelle
0

Geben Sie die Nummer ein, die den gewünschten Pfad angibt, und drücken Sie die Eingabetaste. in diesem Fall 1 einfügen.

Versuchen Sie abschließend, die Version zu testen java -version

obysr
quelle
Ich möchte Version 7, nicht 6. Die Ausgabe zeigt an update-alternatives, dass ich bereits Version 7 verwende, java -versionzeigt aber , dass ich immer noch Version 6 verwende.
Dónal
0

Ich denke, Ihre Java-Binärdatei zeigt auf eine andere Stelle als /etc/alternatives/java.

Überprüfen Sie die Ausgabe von: type java

Sagt es /usr/bin/java? Wenn ja, prüfen Sie, ob dies korrekt auf Alternativen hinweist:

ls -l /usr/bin/javasollte es zeigen zeigen auf /etc/alternatives/java.

Zuletzt bestätigen Sie, dass /etc/alternatives/javaselbst auf Java-7 zeigt :
ls -l /etc/alternatives/java.

Der Befehl update-alternatives passt nur den letzten an und geht davon aus, dass Standardpunkte, mit /usr/bin/javadenen wiederum korrekt verknüpft ist /etc/alternatives/java.

Sumwale
quelle
0

Ich habe fast alle oben aufgeführten Methoden ausprobiert, aber immer noch festgestellt java -version , dass die falsche Version gedruckt wurde, während ich ls -al /etc/alternatives/javabereits auf die richtige verwiesen habe.

Also habe ich ausgeführt: which java und festgestellt, dass das Ergebnis zeigt, dass ich Java von verwendet habe /usr/local/jdk_xxx/bin/java, dann habe ich diesen Ordner gelöscht und das Terminal neu gestartet. Jetzt funktioniert Java gut.

Hoffe, es wird anderen helfen.

Xinjing
quelle