Comment Installer Java sur Raspberry Pi ? (Toutes versions)


Java sur Raspberry Pi, et en général sur Linux, est un cauchemar.
Comme sur Windows, il y a plusieurs versions différentes, ainsi que des versions spécifiques pour les utilisateurs et pour les développeurs. Ajoutez à cela que Java est désormais la propriété d’Oracle, loin des considérations open-source de Linux.
Je sais que plusieurs d’entre vous connaissent des difficultés avec Java sur leur Raspberry Pi, et je vais tenter à travers ce tutoriel de vous aider.

Java est déjà installé par défaut sur le Raspberry Pi OS Full, donc rien à faire si vous avez cette version.
Pour installer Java sur une autre version (sur Desktop ou Lite), le paquet « openjdk-11-jre » devra être installé avec le gestionnaire de paquet.

Voilà, la réponse est plutôt simple mais creusons un peu plus le sujet.
Libre à vous de sauter l’introduction à Java en dessous si vous connaissez déjà les bases.

Introduction à Java

Téléchargez mon antisèche !
Format PDF pratique, avec 74 commandes à retenir pour maîtriser son Raspberry Pi.

Java n’est pas aussi simple qu’il n’y paraît, je commencerais par un bref rappel sur les différents concepts avant d’aller plus loin.

Qu’est-ce que Java?

Ok donc le premier point est que Java est un langage de programmation populaire.
Vous allez le rencontrer presque partout, même si c’est un langage plutôt vieux (il a été créé en 1995), il est encore largement utilisé de nos jours.

Ce que les développeurs apprécient à propos de Java est sa portabilité. Il tournera sur n’importe quelle plateforme sans avoir besoin d’être recompilé.
C’est un langage puissant avec une large communauté, par conséquent vous pouvez trouver de l’aide facilement, sur Stack Overflow par exemple.

Donc, même si le Raspberry Pi est principalement connu pour la programmation avec Python, vous pouvez totalement l’utiliser pour apprendre le Java ou coder n’importe quoi avec. Vous aurez aussi besoin de Java pour faire tourner certains logiciels inclus.

Est-ce que Java est open-source ?

Ce point est un peu controversé 🙂
La réponse courte est que Java est gratuit et Open-source.

Java a été créé par Sun Microsystems et mis sous la licence GNU GPL. Par conséquent, c’était clair comme de l’eau de roche.
Mais en 2009, Oracle a racheté Sun et donc Java.
La cible principale d’Oracle sont les entreprises, et donc ça n’était pas une bonne nouvelle pour les développeurs Java.

Pour le moment, il y a deux versions de Java disponibles : Java SE et OpenJDK.
OpenJDK est toujours développé sous licence GNU GPL, mais la version développée par Oracle est maintenant un produit commercial, gratuit pour un usage personnel, mais payant pour un usage commercial.
Vous pouvez en savoir plus ici si cela vous intéresse.

Vous aurez probablement besoin de plus d’informations pour comprendre l’histoire dans son ensemble, mais pour résumer cette histoire compliquée, vous avez deux versions différentes disponibles.
Sur le Raspberry Pi, vous n’aurez accès qu’à la version OpenJDK. Il n’y a pour l’heure pas de paquet ou de source disponible pour l’architecture ARM de la version commerciale.

Les versions de Java

Cela va être un peu plus simple. Comme la plupart des logiciels et des langages de programmation, il y a régulièrement de nouvelles versions disponibles.
Pour les dernières années, Java a été mis à jour tous les 6 mois à peu près.

Voici l’historique des dernières mises à jour de Java:

VersionDate de sortie
Java 8Mars 2014
Java 9Septembre 2017
Java 10Mars 2018
Java 11Septembre 2018
Java 12Mars 2019
Java 13Septembre 2019
Java 14Mars 2020
Historique des versions Java

Comme toujours avec Debian / Raspberry Pi OS, les versions récentes ne sont pas disponibles dans les dépôts.
Pour le moment, Raspberry Pi OS Buster inclut OpenJDK11 (et quelques versions plus vieilles).

Vous devez comprendre que les développeurs ne suivent pas le même rythme.
Donc, même si vous installez la version 14 de Java sur votre Raspberry Pi, quelques programmes ne fonctionneront pas avec cette dernière, ou ne seront pas optimisés pour cette version.

La plupart du temps, la version incluse dans le dépôt Raspberry Pi OS sera tout à fait adéquate avec 99% de vos programmes.
Si vous avez un problème avec l’un d’entre eux, vous pouvez consulter les recommandations du développeur pour voir quelle version est la plus adaptée.
Il arrive parfois qu’il soit nécessaire d’installer une version plus ancienne de Java pour régler les problèmes.

Les composants Java

C’est bientôt fini avec la théorie sur Java.
Le dernier point que je souhaite clarifier est le « JDK ».
Les développeurs Java utilisent des acronymes partout, et c’est parfois déroutant pour les débutants.

Voici la liste des acronymes que vous allez rencontrer dans le « monde de Java » :

  • JRE : Java Runtime Environment (Environnement d’Exécution Java)
    C’est l’unique paquet à installer si vous ne développez pas sous Java. Il vous permet de faire tourner des programmes Java sur votre machine
  • JDK : Java Developer Kit (Kit de Développement Java)
    Comme le nom le suggère, ceci est requis pour les développeurs Java
    Il inclut le compilateur, le chargeur d’application et d’autres outils
  • JVM : Java Virtual Machine (Machine Virtuelle Java)
    Elle fait partie de JRE, mais vous pouvez aussi la télécharger séparément.
    Elle fournit l’environnement d’exécution pour exécuter les applications Java

Donc, pour résumer, vous devez installer JRE pour exécuter les applications Java, ou JDK si vous voulez en développer.

Maîtrisez Raspberry Pi en 30 jours
10% de remise aujourd'hui !
Téléchargez le livre numérique.
Découvrez les secrets du Raspberry Pi à travers un challenge de 30 jours.

Installer Java sur Raspberry Pi

Maintenant que nous avons vu tous les concepts, on peut installer le nécessaire.
Je vais vous montrer comment installer Java avec le gestionnaire de paquets ou à partir du site Internet.
La plupart du temps le gestionnaire de paquets suffira, mais si vous avez besoin d’une version spécifique, vous pouvez aller à la dernière partie du tutoriel.

Utiliser le gestionnaire de paquets

Au moment d’écrire ce tutoriel, les versions suivantes étaient disponibles dans le dépôt Raspberry Pi OS :

  • openjdk-8-jre et openjdk-8-jdk
  • openjdk-9-jre et openjdk-9-jdk
  • openjdk-10-jre et openjdk-10-jdk
  • openjdk-11-jre et openjdk-11-jdk

Si les versions ci-dessus sont OK pour vous, suivez les étapes suivantes.

Raspberry Pi OS Desktop

Comme je l’ai écrit en introduction, la version complète de Raspberry Pi OS Desktop a déjà la dernière version de Java installée (version 11).
Si vous êtes sur la version « basique » de Raspberry Pi OS Desktop ou si vous voulez utiliser une autre version à la place, suivez ces étapes :

  • Dans le menu principal, allez à Préférences > Add / Remove Software
  • Ensuite, utilisez la barre de recherche pour trouver le paquet à installer.
    Comme vous allez avoir beaucoup de réponses pour « java » ou « openjdk », regardez la liste que je vous ai donné précédemment.
    Par exemple, entrez « openjdk-11-jdk » dans la barre de recherche.
  • Ensuite cochez le paquet correspondant dans les résultats :
  • Cliquez sur « Apply«  pour l’installer
  • Entrez votre mot de passe pour confirmer
  • Puis cliquez sur « OK » pour finir

Si cela ne fonctionne pas, essayez de mettre à jour la liste des dépôts :
Options > Refresh packages lists.
Cet outil ne vous indique pas si le paquet recherché n’est pas disponible :/

Peu après, Java est installé et prêt à être utilisé.
Vous pouvez vérifier rapidement que tout est bon en ouvrant un terminal et en tapant :
java -version

Vous pouvez également utiliser Geany ou un autre IDE pour compiler et lancer votre premier programme 🙂

Raspberry Pi OS Lite

Sur Raspberry Pi OS Lite, Java n’est pas installé par défaut, donc vous devez installer vous-même la version souhaitée.

  • Commencez par mettre à jour les dépôts pour éviter toutes erreurs lors de l’installation :
    sudo apt update
  • Puis installez le paquet requis.
    Par exemple, si vous voulez Java 11 JRE :
    sudo apt install openjdk-11-jre
    Notez que Raspberry Pi OS a besoin d’installer des dépendances (119 dans mon cas !).
  • Confirmez en tapant « Y »

Après quelques minutes, Java est installé et prêt à être utilisé.
Vous pouvez vérifier la version exacte avec la commande suivante :
java -version

Maintenant vous pouvez lancer n’importe quel programme avec « java -jar ».
Par exemple, si votre but est de faire tourner un serveur Minecraft:
java -jar spigot-xx.jar

Installer une autre version de Java

Si vous voulez installer une version différente qui n’est pas disponible dans les dépôts, vous avez besoin de la télécharger depuis le site d’OpenJDK.
Sur le site web, il y a plusieurs paquets Linux disponibles, mais ils ne fonctionnent pas sur le Raspberry Pi.
Donc pour ce faire, l’unique option est de trouver le code source disponible pour la version voulue.

Je préfère vous prévenir, vous allez probablement passer au moins une heure à essayer, et ce, sans garantie de succès, donc j’espère que vous avez une excellente raison d’essayer à la base 🙂

Liens de téléchargement

  • OpenJDK
    • Toutes les versions d’OpenJDK sont disponibles ici : https://jdk.java.net/.
      Choisissez votre version et téléchargez-la (le format de page n’est pas toujours le même)
      Par exemple, avec la version JDK 12 :
      wget https://download.java.net/openjdk/jdk12/ri/openjdk-12+32_src.zip
    • Une autre solution est de télécharger directement le code source ici : http://hg.openjdk.java.net/jdk-updates.
      Ensuite, vous choisissez la version et vous téléchargez le fichier Zip depuis le menu de gauche, ou vous le clonez depuis votre Raspberry Pi.
  • Oracle
    • Les codes sources d’Oracle semblent disponibles uniquement pour les architectures x64, de facto elles ne fonctionneront probablement pas sur le Raspberry Pi.

Installation

Voici comment compiler les sources Java pour mettre à jour ou rétrograder une version:

  • Extrayez les fichiers depuis l’archive :
    unzip openjdk-12+32_src.zip
  • Installez les paquets requis si besoin :
    sudo apt install autoconf build-essential libcups2-dev libx11-dev libasound2-dev libxext-dev libfontconfig1-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev zip
  • Installez la version de JDK la plus récente disponible (si ce n’est pas déjà fait):
    sudo apt install openjdk-11-jdk
    Il n’est pas possible d’installer JDK 14 directement sur Raspberry Pi OS Buster.
    Seulement si vous répétez le même processus pour chaque version :/
  • Puis démarrez l’étape de configuration :
    cd openjdk
    bash configure

    Si vous recevez des erreurs, le plus souvent il vous demandera d’installer les paquets manquants.
    Faites-le et recommencez à nouveau.
    Normalement j’ai couvert tous les aspects, donc j’espère que vous n’aurez pas trop d’erreurs 🙂
  • Voilà, c’est un succès de mon côté, tout est en ordre:
  • Vous pouvez maintenant le construire en tapant :
    make
  • Et 20 minutes plus tard, vous avez les binaires dans le sous-dossier build/linux-arm-server-release/jdk/bin.
    Vous pouvez à présent utiliser cette version spécifique de Java pour lancer du code :
    ./build/linux-arm-server-release/jdk/bin/java --version
Initiation au Raspberry Pi
10% de remise aujourd'hui !
Visionnez ma formation vidéo pour démarrer du bon pied.
Découvrez le Raspberry Pi, le matériel, ses logiciels particuliers et créez vos 5 premiers projets avec moi.

Mise à jour vers une autre version Java sur Raspberry Pi

Supprimer & réinstaller

Vous avez sûrement déjà vu cette notification sur Windows où Java vous demande une mise à jour régulièrement, sur le Raspberry Pi, il n’y a pas de façon directe de mettre à jour Java.

La solution la plus simple est de désinstaller la version installée, pour ensuite réinstaller la dernière version.
Donc, sur Raspberry Pi OS Desktop, décochez l’option dans « Add / Remove software » et cochez celle que vous souhaitez installer.

Sur Raspberry Pi OS Lite, vous pouvez utiliser « apt » pour faire la même chose, par exemple :
sudo apt remove openjdk-9-jdk
sudo apt install openjdk-11-jdk

Pour finir, si vous avez installé votre version depuis le code source, gardez à l’esprit que la version précédente de JDK est nécessaire pour compiler la nouvelle.
Donc ne désinstallez pas celle installée actuellement.

Téléchargez mon antisèche !
Format PDF pratique, avec 74 commandes à retenir pour maîtriser son Raspberry Pi.

Faire cohabiter plusieurs versions

Vous pouvez en installer plusieurs versions si vous le souhaitez, mais ce n’est pas recommandé, ce sera plus un problème qu’autre chose (par exemple, certains logiciels peuvent continuer d’utiliser des versions plus vieilles).

Sur Raspberry Pi OS Desktop, il y a un outil formidable qui permet de passer facilement d’une version à l’autre : G Alternatives.
Vous pouvez le trouver avec l’outil « Add / remove », recherchez « galternatives » dans la barre de recherche.

Une fois installé, retrouvez-le dans le menu principal > Préférences > Alternatives Configurator »
Voici à quoi cela ressemble :

Ensuite vous pouvez sélectionner la version que vous voulez utiliser, ça sera la version utilisée par défaut par toutes les applications.

Maîtrisez Python sur Raspberry Pi
10% de remise aujourd'hui !
Téléchargez le livre numérique.
Envie d'aller un peu plus loin que faire clignoter une LED ? Vous avez besoin de ce livre pour passer à des projets plus avancés.

Conclusion

Voilà, vous avez appris bien des choses sur Java, plus particulièrement comment l’installer et comment le mettre à jour sur votre Raspberry Pi.

Si vous rencontrez des difficultés avec Java, j’espère que cet article vous aura été utile.


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

Patrick Fromaget

Je suis l'auteur principal et le créateur de RaspberryTips. Mon but est de vous aider sur tous vos problèmes qui concernent Raspberry Pi en publiant des guides détaillés et des tutoriels rapides. Dans la vraie vie, je suis administrateur système (Linux principalement) avec une solide expérience dans le développement web.

Recent Posts

"Maitrisez Python sur Raspberry Pi" est enfin disponible en français (10% de réduction cette semaine)

X