Vraag Hoe stel ik de standaard Java-versie in?


Ik volgde alle instructies die hier worden vermeld vraag, maar ik ondervind enkele problemen met het laatste deel ervan.

Ik heb eigenlijk versie 6.22 van java en wil graag updaten naar versie 6.30.

Dus na het verplaatsen van de uitgepakte directory java-6-oracle in /usr/lib/jvm Ik weet niet wat ik moet doen, omdat het script dat in het bovenstaande antwoord wordt vermeld, van java 5 naar java 6 wordt bijgewerkt.

Voor de duidelijkheid hier is output als ik een ls in dir /usr/lib/jvm:

matteo @ matteo-ThinkPad-SL: / usr / lib / jvm $ ls -l

totaal 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

Wat moet ik nu doen?


TOEGEVOEGDE DEEL

Onder de suggestie van @fossfreedom heb ik het script toch uitgevoerd en eigenlijk heeft het de java-versie bijgewerkt.

Stellig als ik het commando voer java -version outpu zal het volgende zijn:

matteo@matteo-ThinkPad-SL:~$ 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)

Er bestaat nog steeds een probleem, als Irun javac -version het geeft me de oude geïnstalleerde versie:

matteo@matteo-ThinkPad-SL:~$ javac -version
javac 1.6.0_22

En als ik de tester hierbij gebruik link het zal me vertellen dat de versie is

Java Version 1.6.0_22 from Sun Microsystems Inc.

Wat gaat er mis?

Het lijkt erop dat Java Runtime Environment is bijgewerkt, maar Java Compiler en Java-plug-in voor browser niet.

Hoe kan ik ze updaten?


ANDER TOEGEVOEGD DEEL

sudo update-alternatives --config java zal volgende uitvoer retourneren

matteo@matteo-ThinkPad-SL:~$ 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:

dit is logisch met het feit dat JRE correct is bijgewerkt naar versie 6.31, problemen zijn op Java Compiler en Java browser plug-in.

Om het even welke ideeën?


86
2018-04-13 10:46


oorsprong


... heb je het over het webupd8-script? Wat zie je als je het script uitvoert? - fossfreedom♦
@fossfreedom Ik heb het niet geprobeerd omdat ik dacht dat het geen goed idee was om het expliciet te schrijven voor het uploaden van Java 5 naar 6, toch? - Matteo
hmmm - mogelijk is het verwarrend dat het script webupd8 0.5b is? Dat is de versie van het script - het verwijst niet naar de Java-versie. Probeer het eens. Laat een screenshot zien van hoe het venster eruit ziet wanneer u het script uitvoert. - fossfreedom♦
@fossfreedom ja dat verwarde me helemaal; D ik had het script! controleer de bewerkingen in kwestie! thks veel voor het helpen van mij .. - Matteo
hoe erg vreemd ... ik ben dat nog nooit tegengekomen. Hoe dan ook - kijk naar het antwoord hieronder - dat zou je moeten kunnen sudo update-alternatives zoals in het voorbeeld. - fossfreedom♦


antwoorden:


Re uw eerste vraag:

mogelijk is het verwarrend dat het script webupd8 0.5b is. Dat is de versie van het script - het verwijst niet naar de Java-versie.

Naar aanleiding van de instelling van de javac-versie.

Ik vermoed dat je expliciet het pad van de javac-compiler moet geven

d.w.z.

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

gevolgd door:

sudo update-alternatives --config javac

Met betrekking tot het instellen van de Java Chrome-plug-in.

De hoofdvraag:

Hoe installeer ik Oracle JDK 6?

omvat deze informatie - aangezien uw mappenstructuur enigszins afwijkt moet uw link-opdracht zijn:

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

83
2018-04-13 12:37



Op zichzelf verandert dit gewoon de compiler - zie het antwoord hieronder voor update-java-alternatieven die omgaat met het omschakelen van alle java-gerelateerde alternatieven, dat is 82 op mijn systeem. - Greg


Zien deze; rennen

sudo  update-java-alternatives --list

om alle Java-installaties op een machine op naam en directory weer te geven en vervolgens uit te voeren

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

om te kiezen welke JRE / JDK moet worden gebruikt.

Als u voor elke Java-taak verschillende JDK's / JRE's wilt gebruiken, kunt u update-alternatieven uitvoeren om een ​​Java-uitvoerbaar bestand tegelijk te configureren; je kan lopen

sudo  update-alternatives --config java[Tab]

om de Java-opdrachten te zien die kunnen worden geconfigureerd (java, javac, javah, javaws, enz.). En dan

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

zal die Java-taak / -opdracht aan een bepaalde JDK / JRE koppelen.

U moet misschien ook JAVA_HOME instellen voor sommige toepassingen: van dit antwoord je kunt gebruiken

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

voor JRE's, of

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

voor JDK's.


32
2018-02-10 01:43





Ik denk dat je de update-java-alternatives commando van de java-common pakket en de *.jinfo bestanden gebruikt door het. Daarmee zou je volledig tussen java-installaties moeten kunnen schakelen (ongeacht JDK, JRE, ...).


24
2018-04-13 14:08



Ik probeerde de update-java-alternatives en dan java -version was correct, maar de link in $JAVA_HOME was nog steeds fout ... ik heb die handmatig veranderd, maar ik vraag me af of er iets ontbreekt in de update-java-alternatives in dat opzicht. - Alexis Wilke


Op ubuntu / linux kun je de java-versie gebruiken met

update-alternatives --config java

Maar daarvoor moet je de versie installeren.

U kunt dit script gebruiken (./install-java.sh) om meerdere JVM's te installeren

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
 jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
 schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
 --install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)

echo "RUN update-alternatives --config java"

Zet dit script in de map waar de JVM (s) zijn uitgepakt en voer het uit:

/opt/install-java.sh

Volgend gebruik:

update-alternatives --config java

4
2017-10-24 02:59





Als je handmatig alternatieven gaat instellen voor javac javawoc javadoc of andere java gerelateerde commando's, kun je ze misschien als slaven van java altenative maken.

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 - automatische modus   link beste versie is /opt/jdk1.8.0_74/bin/java   link verwijst momenteel naar /opt/jdk1.8.0_74/bin/java   link java is / usr / bin / java   slave javadoc is / usr / bin / javadoc /opt/jdk1.8.0_74/bin/java - prioriteit 0   slave javadoc: /opt/jdk1.8.0_74/bin/javadoc

Verander /opt/jdk1.8.0_74/ met de map waar je jdk is geïnstalleerd.


1
2018-02-01 13:01