Wie lege ich die Standard-Java-Version fest?

Wie lege ich die Standard-Java-Version fest?

Ich habe alle Anweisungen befolgt, die in diesemFrage, aber mit dem letzten Teil habe ich einige Probleme.

Ich habe aktuell die Java Version 6.22 und möchte auf die Version 6.30 updaten.

Nachdem ich das extrahierte Verzeichnis verschoben habe java-6-oracle, /usr/lib/jvmweiß ich nicht, was ich tun soll, da das in der obigen Antwort erwähnte Skript von Java 5 auf Java 6 aktualisiert.

Der Übersichtlichkeit halber ist hier die Ausgabe, wenn ich ein „ lsin dir“ mache /usr/lib/jvm:

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

Was sollte ich jetzt tun?


HINZUGEFÜGTER TEIL

Auf Vorschlag von @fossfreedom habe ich das Skript trotzdem ausgeführt und tatsächlich hat es die Java-Version aktualisiert.

java -versionWenn ich den Befehl ausführe , sieht die Ausgabe tatsächlich folgendermaßen aus:

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

Es gibtimmer noch ein Problem, wenn Irun, javac -versionwird mir die alte installierte Version angezeigt:

$ javac -version
javac 1.6.0_22

Und wenn ich den Tester an dieser Stelle benutzeVerknüpfunges wird mir sagen, dass die Version ist

Java Version 1.6.0_22 from Sun Microsystems Inc.

Was läuft schief?

Es scheint, dass die Java Runtime Environment aktualisiert wurde, der Java Compiler und das Java-Plugin für den Browser jedoch nicht.

Wie kann ich sie aktualisieren?


ANDERES HINZUGEFÜGTES TEIL

sudo update-alternatives --config javagibt folgende Ausgabe zurück

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

Dies ist angesichts der Tatsache, dass JRE korrekt auf Version 6.31 aktualisiert wurde, sinnvoll. Die Probleme liegen beim Java-Compiler und dem Java-Browser-Plugin.

Irgendwelche Ideen?

Antwort1

Zu Ihrer ersten Frage:

Möglicherweise verwechseln Sie es mit der Angabe, dass das Webupd8-Skript die Version 0.5b hat. Das ist die Version des Skripts – es bezieht sich nicht auf die Java-Version.

Weiter zur Einstellung der Javac-Version.

Ich vermute, Sie müssen den Pfad des Javac-Compilers explizit angeben

dh

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

gefolgt von:

sudo update-alternatives --config javac

In Bezug auf die Einrichtung des Java Chrome-Plugins.

Die Meisterfrage:

Wie installiere ich Oracle JDK 6?

enthält diese Informationen – da Ihre Ordnerstruktur etwas anders ist, sollte Ihr Link-Befehl lauten:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

Antwort2

SehenDas; laufen

sudo  update-java-alternatives --list

um alle Java-Installationen auf einem Rechner nach Name und Verzeichnis aufzulisten und dann auszuführen

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

um auszuwählen, welches JRE/JDK verwendet werden soll.

Wenn Sie für jede Java-Aufgabe unterschiedliche JDKs/JREs verwenden möchten, können Sie update-alternatives ausführen, um jeweils eine ausführbare Java-Datei zu konfigurieren. Sie können

sudo  update-alternatives --config java[Tab]

um die Java-Befehle anzuzeigen, die konfiguriert werden können (java, javac, javah, javaws usw.). Und dann

sudo  update-alternatives --config [javac|java|javadoc|etc.]

ordnet diese Java-Aufgabe/diesen Java-Befehl einem bestimmten JDK/JRE zu.

Möglicherweise müssen Sie für einige Anwendungen auch JAVA_HOME festlegen: vondiese AntwortSie können verwenden

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

für JREs oder

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

für JDKs.

Antwort3

update-java-alternativesIch denke, du solltest dir mal den Befehl aus dem java-commonPaket und die von ihm verwendeten Dateien anschauen *.jinfo. Damit solltest du komplett zwischen Java-Installationen wechseln können (unabhängig von JDK, JRE, ...).

Antwort4

Wenn Sie Alternativen für javac, javaws, javadoc oder andere Java-bezogene Befehle manuell festlegen, möchten Sie sie möglicherweise zu Slaves der Java-Alternative machen.

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

Java – Auto-Modus-Link. Beste Version ist /opt/jdk1.8.0_74/bin/java. Link zeigt aktuell auf /opt/jdk1.8.0_74/bin/java. Link Java ist /usr/bin/java. Slave-Javadoc ist /usr/bin/javadoc. /opt/jdk1.8.0_74/bin/java – Priorität 0. Slave-Javadoc: /opt/jdk1.8.0_74/bin/javadoc.

Ersetzen Sie /opt/jdk1.8.0_74/ durch das Verzeichnis, in dem Ihr JDK installiert ist.

verwandte Informationen