Comment supprimer correctement OpenJDK / OpenJRE et définir SunJDK / SunJRE par défaut

48

Ubuntu semble préférer OpenJDK / JRE à Sun JDK / JRE. Même après avoir installé Sun JRE, JDK et le plug-in et passé un certain temps à extraire les paquets liés à OpenJDK, apt-get les a réinstallés avec certains paquets en tant que dépendance. Ce comportement peut-il être corrigé en faveur des packages Sun Java? Je voudrais avoir une seule pile Java installée (oui, c’est un peu OCD , mais j'aime bien avoir mes systèmes propres) et je veux que ce soit Sun Java.

Mise à jour: comme le note Marcos Roriz, le problème semble être celui de default-jre (sur lequel dépendent les paquets Java-dépendants) pointant vers OpenJDK, la question semble donc se poser hack default-jre / default-jdk pour désigner Sun Java.

    
posée Ivan 11.01.2011 - 22:46
la source

10 réponses

35

Installation de Sun Java sur d'anciennes versions d'Ubuntu (9.10 et versions antérieures)

Il y a environ trois ans, j'ai eu le même problème avec Ubuntu 8.04. Il y avait un problème étrange en utilisant openjre et le problème a été résolu en utilisant la version de sun jre. Voici les étapes du terminal qui s'appliquent aux versions inférieures à 10.04, car à partir de 10.04 sun java a été supprimé et remplacé par openjre:

sudo apt-get remove openjdk-6-jre default-jre default-jre-headless

sudo apt-get install sun-java6-jre sun-java6-bin sun-java6-plugin sun-java6-fonts

(Tout ce qui concerne Sun java. Juste pour être sûr)

Après cela, si vous supprimiez openjdk, vous n’auriez que sun java. Si vous ne l'avez pas retiré, vous les avez tous les deux. Pour passer de l'une à l'autre, procédez comme suit:

sudo update-java-alternatives -l - Cela vous montrera la liste des moteurs Java que vous pouvez utiliser.

Le nom de l’alternative java est celui de gauche, par exemple openjdk apparaîtra comme ceci:

java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk

Et vous voudriez ouvrir le système comme ceci:

sudo update-java-alternatives -s java-6-openjdk

Si vous souhaitez utiliser Sun, vous devez le faire (après l'installation des packages sun):

sudo update-java-alternatives -s java-6-sun

Si vous voulez utiliser la version java 7, changez simplement le numéro 6 mentionné ci-dessus pour 7. Par exemple, si je voulais installer la version openjre 7 je le ferais:

sudo apt-get install openjdk-7-jre default-jre default-jre-headless

Installation de Sun Java sur des versions plus récentes d’Ubuntu (10.04 et ultérieures)

Ouvrez le terminal et tapez ce qui suit:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update   
sudo apt-get upgrade   
sudo apt-get install oracle-java7-installer

Cela devrait installer la version de Sun Java sur votre système. Pour le changer, procédez comme suit si vous avez d’autres alternatives java:

sudo update-java-alternatives -s java-7-oracle  

Si vous souhaitez que l’installation soit automatique, tapez ce qui suit:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections

Après cela, procédez comme suit pour définir les variables d’environnement par défaut:

sudo apt-get install oracle-java7-set-default

Notez que le PPA inclut les versions 6, 7 et 8. Vous pouvez donc en installer un simplement en changeant le numéro dans la ligne d’installation, par exemple:

sudo apt-get install oracle-java8-installer

Installation de Java 8. Après avoir installé la version Java que vous souhaitez utiliser et défini la version sur la valeur par défaut avec la commande update-java-alternatives , vous pouvez vérifier la version que vous utilisez en tapant ce qui suit:

java -version

Il vous montrera la version par défaut que vous utilisez à ce moment-là.

J'aimerais également mentionner que OpenJRE / JDK a parcouru un long chemin il y a deux ou trois ans, lorsque de nombreux problèmes ont été résolus en passant à Sun Java.

    
réponse donnée Luis Alvarado 11.01.2011 - 23:06
la source
11

Je pense que le problème est que certains paquets Java reposent sur default-jre qui pointe vers openjdk-jre. Je ne pense pas qu'il existe un moyen facile de désinstaller définitivement openjdk. La chose est que vous allez probablement revenir sur openjdk lorsque vous installez un package / programme java.

Mais si vous êtes prêt à utiliser les deux, il est facile de définir les programmes d'exécution Java (java, javah, javap, etc.) sur l'implémentation de Sun. Faites-le:

sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

ou si vous êtes un développeur java (installez le sdk et srcs):

sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-source

Et le définir comme programme par défaut avec:

sudo update-java-alternatives -s java-6-sun
    
réponse donnée Marcos Roriz Junior 11.01.2011 - 23:34
la source
6

Le fichier .jdk1.6.0_23.jinfo doit être une liste des programmes fournis et de leurs chemins. Il existe un en-tête descriptif suivi d'une ligne vierge. Ensuite, une liste des programmes dans un format à trois champs: type d'entrée (jre / jkd / plugin); nom du programme; et chemin. Vous devriez avoir des fichiers jinfo que vous pouvez utiliser pour voir à quoi ressemble le contenu. Ceci est probablement utilisé par le mécanisme d'alternatives pour déterminer les liens à créer. Le chef de mon package Sun est.

name=java-6-sun-1.6.0.22
alias=java-6-sun
priority=63
section=non-free

jre ControlPanel /usr/lib/jvm/java-6-sun/jre/bin/ControlPanel
jre java /usr/lib/jvm/java-6-sun/jre/bin/java
jre java_vm /usr/lib/jvm/java-6-sun/jre/bin/java_vm

Si vous souhaitez remplacer les commandes Java par défaut sans utiliser le mécanisme d'alternatives, placez votre chemin Java devant / usr / bin sur votre chemin.

Lors d’une installation manuelle, j’installe Java en /opt . pour votre installation, j'aurais installé /opt/jdk1.6.0_23 . Ensuite, je mets le chemin $JAVA_HOME/bin au début de ma variable PATH .

EDIT: Ceci est le fichier Sun complet. Remarque .java-6-sun.jinfo est un lien symbolique vers .java-6-sun-1.6.0.22.jinfo .

name=java-6-sun-1.6.0.22
alias=java-6-sun
priority=63
section=non-free

jre ControlPanel /usr/lib/jvm/java-6-sun/jre/bin/ControlPanel
jre java /usr/lib/jvm/java-6-sun/jre/bin/java
jre java_vm /usr/lib/jvm/java-6-sun/jre/bin/java_vm
jre javaws /usr/lib/jvm/java-6-sun/jre/bin/javaws
jre jcontrol /usr/lib/jvm/java-6-sun/jre/bin/jcontrol
jre keytool /usr/lib/jvm/java-6-sun/jre/bin/keytool
jre pack200 /usr/lib/jvm/java-6-sun/jre/bin/pack200
jre policytool /usr/lib/jvm/java-6-sun/jre/bin/policytool
jre rmid /usr/lib/jvm/java-6-sun/jre/bin/rmid
jre rmiregistry /usr/lib/jvm/java-6-sun/jre/bin/rmiregistry
jre unpack200 /usr/lib/jvm/java-6-sun/jre/bin/unpack200
jre orbd /usr/lib/jvm/java-6-sun/jre/bin/orbd
jre servertool /usr/lib/jvm/java-6-sun/jre/bin/servertool
jre tnameserv /usr/lib/jvm/java-6-sun/jre/bin/tnameserv
jre jexec /usr/lib/jvm/java-6-sun/jre/lib/jexec
jdk HtmlConverter /usr/lib/jvm/java-6-sun/bin/HtmlConverter
jdk appletviewer /usr/lib/jvm/java-6-sun/bin/appletviewer
jdk apt /usr/lib/jvm/java-6-sun/bin/apt
jdk extcheck /usr/lib/jvm/java-6-sun/bin/extcheck
jdk idlj /usr/lib/jvm/java-6-sun/bin/idlj
jdk jar /usr/lib/jvm/java-6-sun/bin/jar
jdk jarsigner /usr/lib/jvm/java-6-sun/bin/jarsigner
jdk javac /usr/lib/jvm/java-6-sun/bin/javac
jdk javadoc /usr/lib/jvm/java-6-sun/bin/javadoc
jdk javah /usr/lib/jvm/java-6-sun/bin/javah
jdk javap /usr/lib/jvm/java-6-sun/bin/javap
jdk jconsole /usr/lib/jvm/java-6-sun/bin/jconsole
jdk jdb /usr/lib/jvm/java-6-sun/bin/jdb
jdk jhat /usr/lib/jvm/java-6-sun/bin/jhat
jdk jinfo /usr/lib/jvm/java-6-sun/bin/jinfo
jdk jmap /usr/lib/jvm/java-6-sun/bin/jmap
jdk jps /usr/lib/jvm/java-6-sun/bin/jps
jdk jrunscript /usr/lib/jvm/java-6-sun/bin/jrunscript
jdk jsadebugd /usr/lib/jvm/java-6-sun/bin/jsadebugd
jdk jstack /usr/lib/jvm/java-6-sun/bin/jstack
jdk jstat /usr/lib/jvm/java-6-sun/bin/jstat
jdk jstatd /usr/lib/jvm/java-6-sun/bin/jstatd
jdk native2ascii /usr/lib/jvm/java-6-sun/bin/native2ascii
jdk rmic /usr/lib/jvm/java-6-sun/bin/rmic
jdk schemagen /usr/lib/jvm/java-6-sun/bin/schemagen
jdk serialver /usr/lib/jvm/java-6-sun/bin/serialver
jdk wsgen /usr/lib/jvm/java-6-sun/bin/wsgen
jdk wsimport /usr/lib/jvm/java-6-sun/bin/wsimport
jdk xjc /usr/lib/jvm/java-6-sun/bin/xjc
plugin xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-6-sun/jre/lib/amd64/libnpjp2.so
plugin mozilla-javaplugin.so /usr/lib/jvm/java-6-sun/jre/lib/amd64/libnpjp2.so
    
réponse donnée BillThor 13.02.2011 - 06:05
la source
6

Supprimer openjdk et icedtea:

apt-get purge openjdk-\* icedtea-\* icedtea6-\*

ajoutez ce qui suit à /etc/apt/sources.list

deb http://ppa.launchpad.net/webupd8team/java/ubuntu YOUR_UBUNTU_VERSION_HERE main

installez Sun / Oracle JRE ou JDK:

apt-get install oracle-jdk7-installer
apt-get install oracle-java7-installer 
    
réponse donnée Fabian Zeindl 18.04.2012 - 17:20
la source
4
  

J'ai ajouté cette ligne à la   Fichier / etc / environment:   JAVA_HOME="/ usr / lib / jvm / jdk1.6.0_23"   et ajouté JAVA_HOME / bin au PATH   variable, mais le système d'exploitation ne fonctionne toujours pas   reconnaître la commande java, dit qu'il est   pas installé et me propose gcj et   openjdk.

L'avez-vous vérifié?

echo $JAVA_HOME 
echo $PATH

Si vous n'en avez pas besoin: Désinstallez openjdk et gcj dans synaptic ou avec apt-get.

apt-get remove gcj 
apt-get remove openjdk

J'interdirais java aux alternatives alors, et fais surtout comme BillThor l'a suggéré, pourquoi je lui ai donné un vote.

which javac
which java

devrait indiquer où vous avez installé Java et où il se trouve dans PATH.

    
réponse donnée user unknown 13.02.2011 - 08:56
la source
3
  1. Ouvrez System- & gt; Administration- & gt; Synaptic Package Manager, puis supprimez complètement OpenJDK.
  2. Testez la version de Java en tapant java -version dans le shell (il affichera Sun Java uniquement)
  3. Tapez sudo update-java-alternatives -l
  4. vous avez terminé. Maintenant, vous n'avez installé que sun java et sa configuration par défaut est jdk

et cela ne fonctionne que si deux jdk sont installés et que vous voulez définir sun-java comme environnement par défaut

    
réponse donnée Shohrat 10.09.2011 - 20:10
la source
2

En utilisant Ubuntu 10.10, il semble que vous deviez marquer pour la suppression libaccess-bridge-java d'abord dans Synaptic, puis marquer openjdk-6-jre-headless.

J'ai fini avec une liste à supprimer:

  

ca-certificates-java, icedtea-6-jre-cacao, libaccess-bridge-java, libaccess-pont-java-jni, openjdk-6-jre, openjdk-6-jre-headless -lib.

Cela a fonctionné, mais il restait un répertoire /etc/java-6-openjdk avec des fichiers et sous-répertoires assortis, que j'ai isolés dans un nouveau répertoire. Il n'y a pas eu d'effets inhabituels, donc il est vraisemblable qu'il ne s'agisse que d'un vestige.

Cela m'a laissé avec le Java que j'avais téléchargé directement depuis le site Web de Java. Cependant, malgré le réglage par défaut et la création du lien vers le répertoire des plugins Firefox, cela ne fonctionnait plus. L'installation de Sun-java6-jre et de ses paquets associés gsfonts-x11, odbcinst, odbcinst1debian2, sun-java6-bin et unixodbc, via Synaptic, a permis de relancer le plug-in Java. La suppression du lien dans le répertoire plugins et son remplacement par le fichier libnpjp2.so ne fonctionnait pas. L'utilisation d'un lien vers les fichiers libjavaplugin_oji.so dans les répertoires ns7 ou ns7-gcc29 de Java installés via Synaptic ne fonctionnait pas non plus. Cela me suggère que pour obtenir le dernier plug-in Java dans Firefox, il est possible de suivre les instructions du site Web Java, et que le Java Linux intégré, quelle que soit la variété présente, est nécessaire pour exécuter le Java téléchargé. les fichiers qui l'entourent une fois le plugin activé. Bien qu'une compréhension complète du code comprenant Java et Linux soit nécessaire pour vraiment résoudre ses mystères, ces expériences sont peut-être utiles pour trouver les raisons pour lesquelles deux Java peuvent être nécessaires dans ce cas. Au moins, il est possible de supprimer tout Java, si quelqu'un le juge utile.

    
réponse donnée Steve 24.06.2011 - 16:46
la source
2

Ce que je fais sur les nouvelles machines Ubuntu 10.10 est

  
  • ajouter java-6-sun,
  •   
  • supprimer openJDK (ajouter d'abord Sun Java sinon un tas de choses seront   enlevé comme tomcat, etc)
  •   

Alors ça me va, plus de dépendances openJDK

    
réponse donnée Bob Yoplait 06.05.2011 - 15:22
la source
2

Les réponses à cette question n’ont pas fonctionné pour moi. En d'autres termes, l'échec suivant:

sudo apt-get purge sun-java5-jre sun-java6-font sun-java6-jre

Avec l'erreur:

Virtual packages like 'sun-java6-jre' can't be removed

Essayez ces instructions , à la place:

  1. Ouvrez Centre des logiciels Ubuntu .
  2. Rechercher IcedTea.
  3. Suppression du plug-in Java IcedTea ( icedtea-6-jre-cacao ), s'il est installé.
  4. Sélectionnez OpenJDK Java 7 Runtime.
  5. Cliquez sur Installer.
  6. Attendez que le package de 41,6 Mo soit téléchargé et installé.

L’OpenJDK (IcedTea) est maintenant installé, ce qui devrait vous permettre (si vous aviez cette erreur) de continuer à installer le JDK d’Oracle sans erreur.

Voir aussi:

réponse donnée Dave Jarvis 31.03.2013 - 06:28
la source
1

Premièrement: supprimez openjdk et icedtea plugin.

sudo apt-get remove openjdk* icedtea*

Deuxièmement: copiez le fichier .bin jdk dans / opt ou / usr / java et extrayez-le.

sudo cp jdk_1.16.0.bin /usr/java

Troisièmement: placez un lien du fichier java dans / usr / bin /

ln -s /usr/java/jdk_1.6.0/bin/java /usr/bin/java
ln -s /usr/java/jdk_1.6.0/bin/javac /usr/bin/javac

mettre à jour les alternatives en utilisant update-alternatives

Créez un lien symbolique vers le plug-in Java dans le répertoire des plug-ins Firefox.

Créez un lien symbolique vers le fichier libnpjp2.so du plugin Java dans le répertoire des plugins Firefox:

   cd  

<Firefox>/plugins


 ln -s  

<JRE>/lib/i386/libnpjp2.so .

J'espère que ça aide.

    
réponse donnée Ubuntuser 13.02.2011 - 08:07
la source

Lire d'autres questions sur les étiquettes