Festlegen von JDK 7 als Standard

83
 four@twenty:~$ file /etc/alternatives/java /etc/alternatives/javac
 /etc/alternatives/java:symbolic link to `/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
 /etc/alternatives/javac:symbolic link to `/usr/lib/jvm/java-6-openjdk-amd64/bin/javac'

Verzeihen Sie meine Unverschämtheit, aber ich interpretiere diese Nachrichten als Laufzeitumgebung mit Java 7, aber der Compiler verwendet Java 6?

Ist das richtig und wenn ja, wie kann ich es so einstellen, dass Java Version 7 verwendet wird?

Wingsuit
quelle

Antworten:

155

Das Umschalten zwischen installierten Java-Versionen kann mit dem update alternativesBefehl erfolgen.

  • Führen Sie den folgenden Befehl auf dem Terminal aus, um eine Liste Ihrer installierten Java-Plattformen abzurufen:

    sudo update-alternatives --config java

    Dadurch erhalten Sie eine ähnliche Listenausgabe:

    There are 2 choices for the alternative java (providing /usr/bin/java).
       Selection    Path                                           Priority   Status
      ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-oracle/jre/bin/java         1070      auto mode
      1            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode
    * 2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1069      manual mode
    Press enter to keep the current choice[*], or type selection number: 

In diesem Fall wird die Open JDK 6-Version ausgeführt. Um zur Open JDK-Version 7 zu wechseln, müssen Sie 1an der Eingabeaufforderung die Option auswählen und die EnterTaste drücken.

Sie führen jetzt die OpenJDK 7-Version aus. Es sind keine weiteren Änderungen erforderlich, um Ihre Java-Versionen zu ändern.

Kevin Bowen
quelle
Okay danke. Würde ich durch die Deinstallation von jkd6 etwas gewinnen?
Wingsuit
@ user142712 Kein Problem. Ich glaube, dass eine Deinstallation auch das ältere Browser-Plugin entfernen würde, was aus Sicherheitsgründen von Vorteil ist.
Kevin Bowen
1
Ich würde mich nicht so schnell für die Antwort "Kein Problem" entscheiden. Überprüfen Sie oracle.com/technetwork/java/javase/compatibility-417013.html und upstream-tracker.org/java/versions/jdk.html . Es gibt keine 100% ige Kompatibilität zwischen diesen beiden Hauptversionen, und es kann vorkommen, dass Sie eine Anwendung X haben, die mit der siebten Version nicht ordnungsgemäß ausgeführt werden kann. Bis Sie sicherstellen, dass es keine Probleme gibt, rate ich Ihnen dringend, beide zu behalten, falls Sie die vorherige Version benötigen.
rbaleksandar
Nur um es klar auszudrücken. Der "kein Problem" -Kommentar war eine andere Art von mir zu sagen, dass Sie willkommen sind. Ich habe nie behauptet, dass es keine Probleme mit Ihrer Java-Installation geben würde.
Kevin Bowen
1
Die von dieser Antwort bereitgestellte Update-Alternativlösung wechselt nur die JRE . Weiter unten sehen Sie, wie Sie das gesamte JDK (Compiler und andere Tools) mit einem Befehl umschalten können
J. Will
15

Die am häufigsten gewählte Antwort, die die Verwendung vorschlägt

Update-Alternativen

beantwortet die Frage nur teilweise. Wenn Sie es verwenden, ist Ihre Java-Umgebung höchstwahrscheinlich inkonsistent.

Dies ist besonders wichtig, wenn Sie über JDK und nicht über JRE as verfügen

[sudo] update-alternatives --config java

wird Version für den Sport ändern javaBefehl nur , dh Haupt-JRE ausführbare repoint.

javacund andere JDK-Tools verweisen weiterhin auf die andere Java-Version. Um vollständig umzuschalten, müssen Sie mit update-alternativesallen anderen Werkzeugen fortfahren .

Die richtige und viel einfachere Möglichkeit, Java-Versionen in der Linux-Distribution mit "alternatives" -System zu wechseln - dh in Debian oder einem davon abgeleiteten Ubuntu - ist die Verwendung des Befehls update-java-alternatives .

update-java-alternatives -l - listet die installierten Java-Versionen auf

[sudo] update-java-alternatives -s - wechselt zur angeforderten Version

Quelle

J. Will
quelle
DIESE! Ich danke dir sehr. Ich wünschte, ich könnte Ihnen im Internet mehr Punkte geben, aber ich glaube, ich habe das noch nicht richtig.
Nenotlep
10

Sie können sudo update-alternatives --config javaJDK 7 ausführen und auswählen, falls es installiert ist.

Frederik Spang
quelle
Okay, Prost, es heißt, ich habe zwei von JKD7 installiert, einen Listungsstatus als Auto, den anderen manuell. Gibt es da einen Unterschied?
Wingsuit
Es gibt Infos hier: linux.die.net/man/8/update-alternatives, aber ich würde auto auswählen.
Frederik Spang
Jede Verknüpfungsgruppe befindet sich zu einem bestimmten Zeitpunkt in einem von zwei Modi: automatisch oder manuell. Wenn sich eine Gruppe im automatischen Modus befindet, entscheidet das Alternativsystem automatisch, ob und wie die Verknüpfungen aktualisiert werden, wenn Pakete installiert und entfernt werden Im manuellen Modus ändert das alternative System die Links nicht, sondern überlässt alle Entscheidungen dem Systemadministrator. "
17.