Vous ne le savez peut-être pas, mais Java se décline en plusieurs saveurs et parties. Après avoir racheté Sun Microsystems, Oracle est devenu le propriétaire officiel de la marque Java et des principales distributions "officielles" de Java.
Tout d'abord, une clause de non-responsabilité : je ne suis ni avocat, ni développeur Java. Il s'agit d'un aperçu de haut niveau d'un certain nombre de questions complexes liées à Java, au développement de Java et aux licences. Mon objectif est de vous donner suffisamment d'informations pour que vous puissiez aller de l'avant et réussir, mais je vous encourage à faire des recherches supplémentaires et à consulter un avocat si vous avez besoin d'informations complémentaires. Je sais qu'il m'arrivera d'omettre des détails et de passer sous silence des points importants.
Java se compose des éléments suivants
- JVM: La machine virtuelle Java est la machine virtuelle qui exécute toutes les applets Java. Les applets Java sont généralement distribuées sous forme de bytecode Java dans un fichier JAR. Le bytecode Java ne s'exécute pas nativement sur l'ordinateur physique. Il s'exécute sur la JVM. La JVM est un compilateur Just-in-Time (JIT) qui convertit le bytecode Java en code machine natif.
- Les deux versions les plus populaires de la JVM sont Hotspot (la JVM officielle utilisée par le JDK d'Oracle) et OpenJ9.
- Techniquement, Android n'a pas de JVM. Le bytecode Java est converti en bytecode Dalvik et exécuté sur la DVM (Dalvik Virtual Machine) ou compilé par ART (Android Runtime). Les deux utilisent des fichiers .dex, mais ART traduit le bytecode en fichiers .elf (Executable and Linkable Format). Cet article est principalement axé sur le côté bureau Java pour la construction d'applications Android avec Delphi, mais je voulais ajouter cet aparté pour plus de clarté.
- JRE: L'environnement d'exécution Java contient les principales bibliothèques dont une applet Java a besoin pour fonctionner, ainsi que la JVM. Il comprend Java.exe et Javaw.exe qui exécutent les applets et d'autres utilitaires.
- JDK: Le kit de développement Javaou le SDK pour le développement Java. Le JDK est un surensemble du JRE. C'est ce que vous utilisez pour créer des applications Java (et Android), et il fournit également tout ce dont vous avez besoin pour exécuter des applets Java. Il comprend un certain nombre d'utilitaires tels que KeyTool.exe et JarSigner.exe, utilisés pour créer des applications Java.
- Il existe trois variantes de la plateforme Java publiées par Oracle : l'édition Standard (Java SE), l'édition Enterprise (Java EE) et l'édition Micro (Java ME). Ce billet de blog, et la plupart des cas d'utilisation que vous rencontrerez, concernent l'édition Standard.
C'est avec le OpenJDKJava Standard Edition (SE) est une implémentation libre et gratuite de la plate-forme Java Standard Edition (SE). Il s'agit de la version officielle de référence de Java SE depuis la version 7. L'implémentation source est sous licence GNU General Public License version 2 avec une exception de liaison. [wikipedia] Tout comme Chrome est basé sur le projet open-source Chromium, Java SE est basé sur OpenJDK.
N'importe qui, y compris vous-même, peut télécharger les fichiers sources d'OpenJDK et créer une version binaire. Il existe un certain nombre d'organisations qui font cela, et chacune d'entre elles a son propre point de vue sur les licences, le support et les composants inclus. En voici quelques-unes (il s'agit de distributions binaires des sources d'OpenJDK).
Construire |
Long terme Support |
Permissif Licence |
Pure |
Commercial Support |
| AdopterOpenJDK / JClarity / IBM Java SDK |
Oui | Oui | En option | Oui |
| Alibaba Dragonwell | Oui | Oui | Non | Oui |
| Amazon Corretto | Oui | Oui | Non | Non |
| Azul Zulu | Oui | Oui | Non | Oui |
| BellSoft Liberica JDK | Oui | Oui | Non | Oui |
| ojdkbuild | Oui | Oui | Oui | Non |
| Oracle Java SE | Oui | Non | Non | Oui |
| Oracle OpenJDK | Non | Oui | Oui | Non |
| Red Hat OpenJDK | Oui | Oui | Oui | Non |
| Red Hat pour Windows | Oui | Oui | Non | Oui |
| SAP SapMachine | Oui | Oui | Non | Non |
| Source : https://en.wikipedia.org/wiki/OpenJDK | ||||
Oracle fournit des compilations directes d'OpenJDK, mais ces compilations directes d'Oracle n'incluent pas de support à long terme ou de support commercial. Pour cela, Oracle veut que vous passiez à Oracle SE, qui n'a pas de licence permissive (Oracle a récemment modifié la licence de son JDK Standard Edition pour facturer une redevance annuelle pour l'utilisation commerciale). Ainsi, alors que le code source d'OpenJDK bénéficie d'une licence permissive, la distribution binaire d'Oracle ne bénéficie pas de la même licence.
C'est là qu'intervient AdoptOpenJDK (et d'autres). Ils prennent les fichiers sources OpenJDK et fournissent une distribution binaire avec un support à long terme (mises à jour et corrections pour l'ancienne version), une licence permissive et un support commercial. AdoptOpenJDK est maintenu et soutenu par la communauté et par un certain nombre d'organisations. grandes entreprises dont IBM, GoDaddy, Microsoft et Red Hat.
RAD Studio ne dépend pas directement de Java, mais si vous utilisez le SDK Android pour cibler Android, vous l'utilisez. Le programme d'installation actuel de RAD Studio vous offre la possibilité d'installer le JDK standard d'Oracle si vous n'en avez pas déjà un d'installé. À l'avenir (vers la 10.4.x), Embarcadero prévoit de modifier l'option par défaut pour installer AdoptOpenJDK.
La décision d'utiliser le JDK et le JRE vous appartient. Dans ce billet de blog, je vais vous aider à passer à la version AdopterOpenJDK avec HotSpot JRE (HotSpot est la JVM officielle utilisée par le JDK d'Oracle, mais il en existe d'autres).
Avant de commencer
Si le JRE ou le JDK d'Oracle est déjà installé, vous pouvez le désinstaller. Sauf si vous avez d'autres logiciels sur votre ordinateur qui en dépendent spécifiquement. Si vous ne l'avez installé que pour le développement Android avec Delphi, vous pouvez le désinstaller. En raison de la façon dont il est mis à jour, vous pouvez découvrir que vous avez plusieurs versions installées.
Installation
Visiter https://adoptopenjdk.net/ et si vous êtes sur un ordinateur Windows, il devrait vous proposer par défaut le téléchargement que vous souhaitez. Oui, nous voulons la version 8, même s'il existe de nouvelles versions. La version 8 est la plus populaire pour la plupart des cas d'utilisation, y compris pour le développement Android, et les différentes versions ne sont pas compatibles.

Si vous utilisez une version 32 bits de Windows, vous devez impérativement passer à une plate-forme 64 bits. Faites-le et revenez quand vous aurez terminé. Il n'est pas nécessaire d'installer la version 32 bits sur Windows 64 bits. Si vous visitez le site web à partir d'un autre ordinateur, vous pouvez aller à la page d'accueil du site web. page autres plates-formes/valeurs et y trouver le téléchargement dont vous avez besoin. Vous avez besoin du JDK complet (qui inclut le JRE), et pas seulement du JRE, pour Windows x64.

Au cours de l'installation, vous accepterez le LICENCE PUBLIQUE GÉNÉRALE GNU. Cela ne concerne que le JDK et n'a pas d'incidence sur les projets que vous développez (là encore, consultez un avocat ou lisez les licences vous-même pour vous en assurer). J'aime que l'installateur définisse la variable d'environnement JAVA_HOME, mais c'est facultatif. Sinon, vous pouvez utiliser les valeurs par défaut.

Il ne reste plus qu'à mettre à jour les paramètres de votre IDE Delphi / RAD Studio. Allez à Tools → Options → Déploiement → SDK Manager puis sélectionnez l'un de vos SDK Android (32 ou 64 bits) et passez à l'onglet Java, où vous devriez voir quelque chose comme l'image ci-dessous.

Si vous avez laissé votre JDK Oracle Java SE installé, vous n'aurez pas le triangle jaune car l'ancien JDK est toujours présent. Utilisez ensuite le bouton de navigation pour changer le chemin d'accès et le remplacer par celui où vous avez installé AdoptOpenJDK. Veillez à modifier toutes les entrées de votre SDK Android.

À partir de ce moment-là, vous ne devriez plus remarquer aucun changement. Cela fonctionne, tout simplement. Le JDK d'Oracle SE et le JDK d'AdoptOpen sont tous deux basés sur le même code source et la fonctionnalité est la même.
Installation alternative
Ma méthode préférée pour installer et mettre à jour le AdoptOpenJDK est l'utilisation de la commande Chocolatée
Gestionnaire de paquets Windows.
- Ouvrir une fenêtre PowerShell avec des privilèges d'administrateur
- Exécutez la procédure suivante pour installer Chocolatey
Set-ExecutionPolicy Bypass -Scope Process -Force ; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 ; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - Dans ce cas installer AdoptOpenJDK 8
choco install adoptopenjdk8 - Et à l'avenir, lorsque vous voudrez mettre à jour, il vous suffira d'exécuter la commande suivante à partir d'une invite de commande surélevée
choco update adoptopenjdk8
Je suis un grand fan du gestionnaire de paquets Chocolaty (j'ai un abonnement Pro). Si vous y jetez un coup d'œil, je suis sûr que vous le trouverez très utile.

