Depuis le 16 avril 2019 dans changement de politique d’Oracle concernant le téléchargement de Java, il me semble assez évident qu’il n’est plus souhaitable d’utiliser les paquets Oracle sur Linux.
Les choix à faire
La version
Il faut choisir votre version, actuellement deux sont disponibles dans le dépôt :
-
Java 8 – Vous aurez probablement moins de mauvaises surprises si vous l’utiliser avec des produits un peu anciens (ou d’anciennes versions de ces produits),
-
Java 11 – Si vous utilisez des produits récents ou si vous souhaitez développer une nouvelle application.
Dans la plupart des cas, l’une ou l’autre solution conviendra.
JRE ou JDK ?
Ensuite le type du package JRE ou JDK ?
-
Le JRE (Java Runtime Environment) est le moteur Java, en général c’est suffisant pour les personnes qui ne programme pas, mais certain produits comme Tomcat peuvent nécessiter le JDK. Pour Tomcat c’est le cas lorsque vous utiliser des
JSP
. -
Le JDK (Java Development Kit), c’est le moteur Java plus les outils nécessaires à la création de programmes Java.
En cas de doute, le JDK répondra à tous les besoins.
Quels paquets installer ?
Voici les paquets "Open JDK" disponible à ce jour sous Mint. Les mêmes paquets sont disponibles pour la version 8 et la version 11.
Paquets contenant le JRE seul (sans le kit de développement):
Java version 8 | Java version 11 | Description |
---|---|---|
openjdk-8-jre | openjdk-11-jre | Java standard |
openjdk-8-jre-dcevm | openjdk-11-jre-dcevm | Java version alternative de la communauté (enhanced class redefinition) |
openjdk-8-jre-headless | openjdk-11-jre-headless | Java sans le kit de développement et sans support de l'interface graphique |
openjdk-8-jre-zero | openjdk-11-jre-zero | Java version alternative de la communauté (construite sans code assembleur) |
Paquets contenant le JDK :
Java version 8 | Java version 11 | Description |
---|---|---|
openjdk-8-jdk | openjdk-11-jdk | Java standard avec le kit de développement |
openjdk-8-jdk-headless | openjdk-11-jdk-headless | Java avec le kit de développement (sans support de l'interface graphique) |
Informations obtenues à l’aide de :
apt-cache search PACKAGE_NAME
Rapide explication pour les paquets :
openjdk-XX-jre-dcevm
– Il s’agit d’une version optimisée de laJVM
(Dynamic Code Evolution VM) permettant de charger le code du programme lors de son exécution.openjdk-XX-jre-zero
– Est une version de laJVM
construite sans utiliser de code assembleur. Cela permet d’avoir uneJVM
qui sera toujours la même quel que soit l’environnement. Intéressant pour les testeurs et les développeurs de produits embarqués.openjdk-XX-YYY-headless
– Cette version ne laJVM
n’inclus pas le code permettant l’affichage graphique. C’est généralement, la version que vous devez déployer sur un serveur.
Dans la majorité des cas, votre choix se portera entre les paquets du type openjdk-XX-YYY
. Où XX est le numéro de la version et où YYY est soit jre
soit jdk
, compte tenu des éléments plus haut, le choix est trivial :
À supposer que vous vouliez un JRE
en version 11, il vous suffit d’utiliser la commande :
sudo apt install openjdk-11-jre
À supposer que vous vouliez un JDK
en version 11, il vous suffit d’utiliser la commande (dans le cas d’un JDK
, si vous écrivez du code Java, il est fort probable que la doc et le code source vous soit nécessaire) :
sudo apt install openjdk-11-jdk openjdk-11-doc openjdk-11-source
Dans le cas d’un changement de version, un redémarrage est probablement une bonne idée.
Rapidement, voici les autres paquets qui ne sont utiles que pour les développeurs (ou les curieux) :
Java version 8 | Java version 11 | Description |
---|---|---|
openjdk-8-dbg | openjdk-11-dbg | À réserver à certain développeurs (JNI/debugging symbols) |
openjdk-8-demo | openjdk-11-demo | Démo et exemples (code sources) |
openjdk-8-doc | openjdk-11-doc | Documentation |
openjdk-8-source | openjdk-11-source | Code source des bibliothèques (API) Java |
Désinstallation, changement de version
Le plus simple en cas de changement de version, est de désinstaller tous les paquets liés à OpenJDK
. Ensuite vous pourrez installer les paquets de votre choix correspondant à la nouvelle version.
Pour désinstaller tous les paquets utilisez la commande :
sudo apt purge openjdk-*
Je ferais un article ultérieurement pour expliquer comment faire cohabiter plusieurs versions de JAVA sur une même machine. Plusieurs stratégies sont possibles suivant les usages.
Configuration et diagnostique
Comment savoir quelle version de Java vous utilisez ?
java --version
javac --version
jar --version
Comment savoir si j’ai un JRE
ou un JDK
?
Par exemple, les commandes jar
et javac
font parti du JDK, il suffit de vérifier leur existence :
which javac
Je dois configurer la variable JAVA_HOME
, que dois-je mettre ?
Pour tester vous pouvez utiliser quelque chose comme cela :
JAVAHOME="$( dirname "$( dirname "$( realpath "$( which java )" )" )" )"
Ensuite, récupérez la valeur de :
dirname "$( dirname "$( realpath "$( which java )" )" )"
et mettez cette valeur en dur dans votre ~/.bashrc
.
Reconfiguration d’eclipse
en cas de changement de version de Java
Vous devrez probablement modifier le fichier « eclipse.ini » pour chacune de vos installations d’eclipse
. Si vous utilisez cet IDE pour du développement Java, vous aurez besoin de javac
, c’est donc le chemin de cette commande que l’on va rechercher :
La valeur à mettre pour le paramètre « -vm » du fichier « eclipse.ini » est donnée par :
dirname "$( realpath "$( which javac )" )"
# qui doit vous répondre quelque chose comme :
# /usr/lib/jvm/java-11-openjdk-amd64/bin/java
ᦿ