Impostare JDK 8 come Java predefinito su Debian 8


8

Sto cercando di impostare gli strumenti Java SDK 8 (installati dal repository backport debian) come valori predefiniti.

# update-java-alternatives --list
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

# update-java-alternatives --set /usr/lib/jvm/java-1.8.0-openjdk-amd64
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

Hum, a parte quell'errore (che sono indotto a credere è solo un avvertimento secondo /ubuntu/141791/is-there-a-way-to-update-all-java-related- alternative . In caso contrario, non so come risolvere questo problema, poiché non esiste un plug-in icedtea per jdk8 che posso vedere), questo avrebbe dovuto fare il trucco, giusto?

Ma molti strumenti Java puntano ancora a Java 7:

# update-alternatives --get-selections | grep java
appletviewer                   manual   /usr/lib/jvm/java-8-openjdk-amd64/bin/appletviewer
extcheck                       auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/extcheck
idlj                           auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/idlj
jar                            auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/jar
jarsigner                      auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/jarsigner
java                           manual   /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
javac                          auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
javadoc                        auto     /usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc
...

Cosa dà? Rotto?

MODIFICARE:

Ha risolto il problema con:

for i in `update-alternatives --get-selections | grep java | awk '{print $1}'`; do update-alternatives --config $i; done

Ciò richiederà manualmente ogni singolo strumento. Ciò richiede circa un minuto. Tuttavia, vorrei sapere se esiste un modo migliore.

Risposte:


5

update-java-alternativesdispone di opzioni per aggiornare --jre-headless, --jree --pluginseparatamente.

utilizzando

sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

ha funzionato per me su un server Debian Jessie senza plug-in installato.


4

In Ubuntu, JDK1.8 non rimane installato per impostazione predefinita. Quando si elencano alternative java

$ update-java-alternatives -l
java-1.11.0-openjdk-amd64      1101       /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
java-7-oracle                  1082       /usr/lib/jvm/java-7-oracle

java-1.8.0-openjdk-amd64in questo elenco non è JDK, ma JRE invece . JRE non contiene tutti gli strumenti di sviluppo necessari come javac, javadoc, ecc. È possibile verificare se la directory bin contiene questi file. Questa è la ragione per non registrare questi strumenti.

Quindi, prima devi installare JDK

sudo apt install openjdk-8-jdk

E poi cambia l'alternativa

sudo update-java-alternatives -s java-1.8.0-openjdk-amd64

2

Il modo più semplice per ottenere questo risultato in Debian è usare questo comando

update-alternatives --config java

Quindi otterrai un output come questo:

*0  /usr/lib/jvm/java-8-openjdk-amd64/bin/java  auto mode
 1  /usr/lib/jvm/jdk1.7.0/bin/java              manual mode

Quindi è possibile modificare la selezione predefinita (contrassegnata con "*") digitando il numero indice. Ad esempio, selezionare "1" per utilizzare Java 7 come JVM predefinito. È possibile eseguire nuovamente il comando per verificare le modifiche.

Spero che sia d'aiuto.


1

Per Linux (ad es. Debian):

# update-alternatives --config java
# update-alternatives --config javac
# update-alternatives --config javaws

Esempio:

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

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-10-oracle/bin/java             1091      auto mode
* 1            /usr/lib/jvm/java-10-oracle/bin/java             1091      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode
  3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1081      manual mode
  4            /usr/lib/jvm/jdk1.7.0_80/bin/java                1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java to provide /usr/bin/java (java) in manual mode

0

Devi modificare la variabile home java per java 8 nel file seguente

  'vi /etc/environment'

In questo formato

JAVA_HOME- / usr / lib / jvm / java-8-oracle

Ricarica il file di configurazione usando

'. /etc/environment'

E conferma da questo

   echo  $JAVA_HOME
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.