web-dev-qa-db-fra.com

Définissez JDK 8 par défaut Java sur Debian 8

J'essaie de définir les Java SDK 8 tools (installés à partir du dépôt backports debian) comme valeurs par défaut.

# 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, bien à part cette erreur (que je suis amené à croire n'est qu'un avertissement selon https://askubuntu.com/questions/141791/is-there-a-way-to-update-all- Java-related-alternatives . Sinon, je ne sais pas comment résoudre ce problème, car il n'y a pas de plugin icedtea pour jdk8 que je puisse voir), cela aurait dû faire l'affaire, non?

Mais de nombreux outils Java Java pointent toujours sur 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
...

Ce qui donne? Cassé?

ÉDITER:

A travaillé avec:

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

Cela vous demandera manuellement pour chaque outil. Ce qui prend environ une minute. Je voudrais quand même savoir s'il existe une meilleure façon.

8
Edd Barrett

update-Java-alternatives a des options pour mettre à jour --jre-headless, --jre, et --plugin séparément.

En utilisant

Sudo update-Java-alternatives --jre-headless --jre --set Java-1.8.0-openjdk-AMD64

travaillé pour moi sur un serveur Debian Jessie sans plugin installé.

5
hfs

Dans ubuntu, JDK1.8 ne reste pas installé par défaut. Lorsque vous indiquez pour Java alternatives

$ 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-AMD64 dans cette liste n'est pas JDK, mais JRE à la place. JRE ne contient pas tous les outils de développement nécessaires comme javac, javadoc, etc. Vous pouvez vérifier si le répertoire bin contient ces fichiers. C'est la raison de ne pas enregistrer ces outils.

Donc, vous devez d'abord installer JDK

Sudo apt install openjdk-8-jdk

Et puis changez l'alternative

Sudo update-Java-alternatives -s Java-1.8.0-openjdk-AMD64
4
misbah

La façon la plus simple d'y parvenir dans Debian est d'utiliser cette commande

update-alternatives --config Java

Ensuite, vous obtiendrez une sortie comme celle-ci:

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

Vous pouvez ensuite modifier votre sélection par défaut (marquée d'un "*") en tapant le numéro d'index. Par exemple, vous sélectionnez "1" afin d'utiliser Java 7 comme JVM par défaut. Vous pouvez réexécuter la commande afin de vérifier les modifications.

J'espère que cela aide.

1
patan90

Pour Linux (par exemple Debian):

# update-alternatives --config Java
# update-alternatives --config javac
# update-alternatives --config javaws

Exemple:

$ 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
1
CamelTM

Vous devez changer la variable Java home pour Java 8 dans le fichier ci-dessous)

  'vi /etc/environment'

Dans ce format

Java_HOME-/usr/lib/jvm/Java-8-Oracle

Rechargez le fichier de configuration à l'aide de

'. /etc/environment'

Et confirmez par ceci

   echo  $Java_HOME
0
SuperKrish