Durch die Installation von openjdk-7-jdk wird Java nicht aktualisiert (es handelt sich immer noch um Version 1.6).

Durch die Installation von openjdk-7-jdk wird Java nicht aktualisiert (es handelt sich immer noch um Version 1.6).

Ich habe Probleme beim Aktualisieren von Java. Ich verwende Ubuntu 11.10.

Ich kann es ausführen sudo apt-get install openjdk-7-jdkund es wird erfolgreich abgeschlossen. javac -versionist 1.7, jedoch java -versionist 1.6. Dies ist ähnlich wiedieses Problemaber mein Problem ist, soweit ich das beurteilen kann, nicht der Pfad.

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Danke.

Antwort1

Aktualisieren:

Habe eine Site mit einer ziemlich guten Erklärung gefunden:VERKNÜPFUNG


Aus dem Link:

Dann müssen wir einige Konfigurationen vornehmen. Debian hat ein Skript namens
, um verschiedene Programmversionen zu verwalten .javaupdate-alternatives

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1065
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 1065

Wobei 1065 eine vorgegebene Priorität hat.

Um meine Installation zu prüfen, verwende ich den folgenden –configParameter
update-alternatives --config java
:
There are 2 choices for the alternative java (providing /usr/bin/java).

Auswahlpfad Prioritätsstatus
------------------------------------------------------------------------
* 0 /usr/lib/jvm/jdk1.7.0/bin/java 1065 Auto-Modus
  1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manueller Modus
  2 /usr/lib/jvm/jdk1.7.0/bin/java 1065 manueller Modus

Und da 1065 höher ist als 1061, wird auf meinem Rechner standardmäßig das frisch installierte Java 7 verwendet und es wird Folgendes java -version
ausgegeben:

Java-Version „1.7.0“
 Java(TM) SE-Laufzeitumgebung (Build 1.7.0-b147)
 Java HotSpot(TM) 64-Bit Server VM (Build 21.0-b17, gemischter Modus)

Anmerkungen: Dies macht es möglicherweise verständlicher.

SLES11 # welches Java
/usr/bin/java

SLES11 # update-alternatives --list java
/usr/lib64/jvm/jre-1.6.0-ibm/bin/java

SLES11 # update-alternatives --display java
Java – Status ist automatisch.
 Der Link verweist derzeit auf /usr/lib64/jvm/jre-1.6.0-ibm/bin/java
/usr/lib64/jvm/jre-1.6.0-ibm/bin/java – Priorität 1608
 Slave-RMI-Registrierung: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmiregistry
 Slave-Tnameserv: /usr/lib64/jvm/jre-1.6.0-ibm/bin/tnameserv
 Slave-Rmid: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmid
 Slave-jre_exports: /usr/lib64/jvm-exports/jre-1.6.0-ibm
 Slave-Policytool: /usr/lib64/jvm/jre-1.6.0-ibm/bin/policytool
 Slave-Keytool: /usr/lib64/jvm/jre-1.6.0-ibm/bin/keytool
 Slave-JRE: /usr/lib64/jvm/jre-1.6.0-ibm
Die aktuell „beste“ Version ist /usr/lib64/jvm/jre-1.6.0-ibm/bin/java.

Die Manpage gibt den Pfad an, den die Update-Alternativen für ihr Verzeichnis verwenden.

SLES11 # pwd
/etc/alternatives

SLES11 # ll
lrwxrwxrwx 1 root root 37 Mär 19 06:03 java -> /usr/lib64/jvm/jre-1.6.0-ibm/bin/java
lrwxrwxrwx 1 root root 28. März 19 06:03 jre -> /usr/lib64/jvm/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 28. März 19 06:03 jre_1.6.0 -> /usr/lib64/jvm/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 36 Mär 19 06:03 jre_1.6.0_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 36 Mär 19 06:03 jre_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 28. März 19 06:03 jre_ibm -> /usr/lib64/jvm/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 36 Mär 19 06:03 jre_ibm_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm

Nehmen Sie die Änderung vor, wenn Sie sie bereits installiert haben und nur die Standardeinstellung ändern müssen.

SLES11 # update-alternatives --config java

Es gibt nur 1 Programm, das Java bereitstellt
(/usr/lib64/jvm/jre-1.6.0-ibm/bin/java). Nichts zu konfigurieren.


Ursprüngliche Antwort:

Wenn Sie in /etc/javaoder so etwas schauen /etc/java-7-openjdk, sollten Sie die Konfigurationsdateien sehen.
java.confoderjvm.cfg

Dies hängt normalerweise (abhängig) von der Konfigurationsdatei ab, in der Sie Ihre Optionen festlegen. Sie können mehrere Java-Versionen gleichzeitig installiert haben und die Startvariablen ändern, um festzulegen, welche Ihre Standard-JVM ist.

von CentOSjava.conf

# Wenn Sie ein Basis-JRE-Paket installiert haben
# (zB java-1.6.0-openjdk):
#JAVA_HOME=$JVM_ROOT/jre

# Wenn Sie ein devel JDK-Paket installiert haben
# (z. B. java-1.6.0-openjdk-devel):
#JAVA_HOME=$JVM_ROOT/java

von Ubuntujvm.cfg

# Liste der JVMs, die als Alternative zu Java, Javac usw. verwendet werden können.
# Die Reihenfolge ist wichtig – zuerst in dieser Liste steht die Standard-JVM.
# BEACHTEN SIE, dass diese Datei und ihr Format NICHT UNTERSTÜTZT werden und
# WIRD in einer zukünftigen Version VERSCHWUNDEN.
#
# Sie können auch eine JVM an einem beliebigen Ort auswählen mit dem
# Option "-XXaltjvm=", aber auch das wird nicht unterstützt
# und ist möglicherweise in einer zukünftigen Version nicht mehr verfügbar.
#
-server BEKANNT
-client IGNORIEREN
-hotspot FEHLER
-klassisches WARNEN
-native FEHLER
-grün FEHLER
-jamvm BEKANNT
-Kakao BEKANNT
-null BEKANNT
-shark ALIASED_TO -zero

Unter Ubuntu gibt es ein Programm namens update-java-alternatives
Dies sind die ersten paar Zeilen der Manpage

NAME
       update-java-alternatives - Update-Alternativen für JRE/SDK-Installationen

ZUSAMMENFASSUNG
       update-java-alternatives [--jre] [--plugin] [-t|--test|-v|--verbose]
             -l|--Liste []
             -s|--setzen
             -a|--auto
             -h|-?|--Hilfe

BESCHREIBUNG
       update-java-alternatives aktualisiert alle Alternativen, die zu einer Laufzeit oder einem Entwicklungskit für die Java-Sprache gehören. Ein Paket stellt diese zur Verfügung
       Informationen zu seinen Alternativen in /usr/lib/jvm/..jinfo.
root@ubuntul:/# update-java-alternatives -l  
java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
-s|--setzen
              Setzen Sie alle Alternativen der registrierten JRE/SDK-Installation auf den von der Installation bereitgestellten Programmpfad.

Was ich normalerweise auch sehe, sind Links /etc/profile.dzu Java-Startumgebungen.

Ich vermute, dass Ihre Java-Bibliotheken am selben Ort installiert wurden und die Konfigurationsdateien immer noch standardmäßig die Originalversion aufweisen. Sie müssen lediglich den neuen JVM-Pfad angeben.

verwandte Informationen