{{tag>Bionic programmation plugin_navigateur java}}
----
{{ :application:java:logo.png?80|Logo OpenJDK}}
======OpenJDK, l'implémentation libre de Java ======
**[[wpfr>OpenJDK]]** est l'implémentation libre de la société [[wpfr>Oracle_(entreprise)|Oracle®]] du standard Java sous [[wpfr>Licence_publique_générale_GNU|Licence Publique Générale]].\\
Avant d'installer les paquets nécessaires, consultez la [[:java|page de la documentation consacrée à Java]].
=====Installation=====
Pour installer la plate-forme d'exécution %%JRE%% d'**OpenJDK**, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>default-jre]]**. Son greffon pour les [[:navigateur|navigateurs internet]] est **[[apt>icedtea-plugin]]** sous Ubuntu 18.04, sous Ubuntu 20.04 le paquet n'existe plus, il faut installer **[[apt>icedtea-netx]]**. \\
Cette procédure installera la version 10 sous [[:bionic|Ubuntu Bionic 18.04]] (même si le paquet est //openjdk-11-jdk//).
Le greffon **Icedtea** fonctionne avec les principaux [[:navigateur|navigateurs internet]]: [[:Firefox]], [[ :Epiphany]], [[:Chromium]] et ses dérivés [[:Google Chrome]] et [[:Opera]]. Pour [[:Konqueror]], une fois installé, allez à **Paramètres** → **Configurer Konqueror **... et à partir du menu de sélection Java et JavaScript, cochez **Activer l'option Java environnement**.
Redémarrez votre navigateur internet, cela devrait fonctionner.
====Autres versions====
icedtea-8-plugin n'est plus disponible dans les dépôts officiels d'Ubuntu depuis [[Focal]]((https://packages.ubuntu.com/search?suite=default§ion=all&arch=any&searchon=names&keywords=icedtea-8-plugin)).
*Sur Ubuntu Xenial 16.04, deux versions d'openjdk sont dans les dépôts: la version 8 et la version 9
*Pour installer une version différente, il suffit d'installer le paquet **[[apt>openjdk-8-jre]]** et son greffon pour les [[:navigateur|navigateurs internet]]: **[[apt>icedtea-8-plugin]]** (à adapter selon la version voulue)
Depuis la version 11, la version de l'OpenJDK et la [[java|version de Oracle]] sont identiques (à quelques différences cosmétiques près et au support).
====Version 11====
*Sur //Ubuntu Bionic 18.04//, pour installer la vraie version 11 de OpenJdk, il faut la télecharger et la décompacter :
sudo mkdir -p /usr/lib/jvm && sudo wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz && sudo tar xvf openjdk-11.0.2_linux-x64_bin.tar.gz --directory /usr/lib/jvm/ && sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11.0.2/bin/java 1 && sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-11.0.2/bin/javac 1
ou si cela ne fonctionne pas (source site des développeurs freeplane https://sourceforge.net/p/freeplane/bugs/2631/)
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt install openjdk-11-jre
Dans les 2 cas, s'il y a d'autres version de Java, il faut choisir la bonne version avec
sudo update-alternatives --config java
=====Développer en Java=====
Tous les dépôts ci-dessus possèdent aussi les outils de développement %%JDK%% (**J**ava **D**eveloppement **Kit**). Pour les installer, il suffit simplement de suivre les mêmes procédures mais en modifiant les dernières lettres des noms du paquet, de **''jre''** en **''jdk''**. Soient:
*version par défaut : **[[apt>default-jdk]]**
*version 9: **[[apt>openjdk-9-jdk]]**
__À noter__: L'installation des outils de développement %%JDK%% installera automatiquement la plate-forme d'exécution %%JRE%% si elle n'est pas déjà installée.
==== Le classique "Hello World" ====
Écrire votre premier programme, dans un fichier :
class helloWorld {
public static void main(String args[]){
System.out.println("Bonjour tout le monde!");
}
}
puis dans le terminal, dans le répertoire où se trouve votre fichier //helloWord.java//:
javac helloWorld.java
ce qui compile votre code et crée le fichier **//helloWorld.class//**.\\
On peut maintenant lancer l'exécution:
java helloWorld
==== Décompiler un fichier JAR ====
Voir << [[android_sdk#java_decompileur_project|Java Decompileur Project]]>>
===== Connaître puis changer la version de Java utilisée par défaut =====
Plusieurs versions de Java peuvent cohabiter sans problèmes particuliers.\\
Pour connaître ou changer la version de Java utilisée par défaut, voir [[:java#connaitre_la_version_de_java_utilisee_par_defaut|ce chapitre de la page Java]].
===== Désinstallation =====
Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.\\
Si vous aviez installé les paquets depuis le PPA, vous pouvez [[:ppa#suppression_d_un_ppa|supprimer ce PPA de vos sources de logiciels]]
Voici la méthode pour la suppression complète de java :
1. Supprimer tous les paquets relatifs à Java (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ):
dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y remove ; sudo apt-get -y autoremove --purge
2. Purge des fichiers de configuration :
dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
3. Suppression de la config et du cache :
sudo bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
4. Suppresion manuelle des machines Java :
sudo rm -rf /usr/lib/jvm/*
5. Suppression des entrées Java :
for g in ControlPanel java java_vm javaws jcontrol jexec keytool mozilla-javaplugin.so orbd pack200 policytool rmid rmiregistry servertool tnameserv unpack200 appletviewer apt extcheck HtmlConverter idlj jar jarsigner javac javadoc javah javap jconsole jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic schemagen serialver wsgen wsimport xjc xulrunner-1.9-javaplugin.so; do sudo update-alternatives --remove-all $g; done
6. Recherche des dossiers Java résiduels:
sudo updatedb ; sudo locate -b '\pack200'
=====Voir aussi=====
***(en)** [[http://openjdk.java.net/|Le site officiel d'OpenJDK]]
*[[:java_propriétaire|La page consacré à la version propriétaire de Java]]
***(en)** [[https://www.linuxbabe.com/ubuntu/install-oracle-java-8-openjdk-11-ubuntu-18-04-18-10|Install Oracle Java 8 and Open JDK 11 with Ubuntu 18.04 and 18.10]]
*
----
//Contributeurs : //