web-dev-qa-db-fra.com

Comment puis-je mettre à niveau vers les dernières Java 7 sans perdre mes dépendances et modules complémentaires existants Java)?

$ uname -a
Linux X51 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

$ Java -version
Java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.2)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

J'ai les versions ci-dessus, qui ont une configuration stable importante (pour ma propre application):

  • Malheureusement, je travaillais toujours avec Java 1.6 comme indiqué.
  • Mais maintenant, j'ai découvert que beaucoup de choses ne fonctionnent pas à cause de ce problème de version.
  • Je souhaite supprimer:

a) ancien Java complètement (en toute sécurité)

b) passer à nouveau, installer openjdk-7 64 bits (en toute sécurité)

Est-ce une meilleure idée d'appliquer simplement apt-get remove openjdk*.?

Ou

quoi d'autre serait plus intelligent et plus sûr? (pour éviter de ne pas perdre beaucoup d'autres dépendances juste pour supprimer openjdk-6)

Suivi:

$ Java -version
Java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.3) (7u9-2.3.3-0ubuntu1~12.10.1)

$ Sudo update-alternatives --config Java
[Sudo] password for Sun: 
There are 2 choices for the alternative Java (providing /usr/bin/Java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin/Java   1071      auto mode
  1            /usr/lib/jvm/Java-6-openjdk-AMD64/jre/bin/Java   1061      manual mode
  2            /usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin/Java   1071      manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/jvm/Java-6-openjdk-AMD64/jre/bin/Java to provide /usr/bin/Java (Java) in manual mode

$ Java -version
Java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.10.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
3
YumYumYum

quoi d'autre serait plus intelligent et plus sûr? (pour éviter de ne pas perdre beaucoup d'autres dépendances juste pour supprimer openjdk-6)

La façon la plus intelligente est d'être rétrocompatible et installez les deux (Java 7 est encore en train de mûrir, je crois.)

Installez OpenJDK 7 et tout ce dont vous avez besoin, puis utilisez Sudo update-alternatives --config Java pour vous montrer les différents binaires Java disponibles et leurs emplacements et sélectionnez un défaut (invoqué lorsque vous tapez simplement Java).

Cela vous permet d'utiliser toujours Java 6 si nécessaire en l'appelant simplement via le chemin complet du binaire. Remplacez Java par javac, etc. dans update-alternatives et définissez-les également.

Lorsque vous déterminez que tout votre code/programme est stable sur 1.7 et que vous souhaitez vous débarrasser de 1.6, exécutez dpkg --list | grep -i openjdk pour savoir quels packages sont installés sur votre système, avant d'exécuter quelque chose comme apt-get remove openjdk.* !!

3
ish