Ich habe Probleme beim Aktualisieren von Java. Ich verwende Ubuntu 11.10.
Ich kann es ausführen sudo apt-get install openjdk-7-jdk
und es wird erfolgreich abgeschlossen. javac -version
ist 1.7, jedoch java -version
ist 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 .java
update-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 –config
Parameter
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/java
oder so etwas schauen /etc/java-7-openjdk
, sollten Sie die Konfigurationsdateien sehen.
java.conf
oderjvm.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.d
zu 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.