cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu

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 la JVM (Dynamic Code Evolution VM) permettant de charger le code du programme lors de son exécution.
  • openjdk-XX-jre-zero – Est une version de la JVM construite sans utiliser de code assembleur. Cela permet d’avoir une JVM 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 la JVM 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

ᦿ


ℹ 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog