Depuis le 16 avril 2019 la licence du JDK Oracle a été modifiée.
Le changement en détail
Je ne vous fais pas ici une liste exhaustive des changements, pour cela vous devrez aller voir le site d’Oracle, mais je vous en traduis les grandes lignes.
Le modèle de licence « Oracle-Java-SE » précédent comportait plusieurs options, certaines gratuites sous la licence de code binaire (« BCL » – code propriétaire) et certaines payantes selon les conditions commerciales d’Oracle. Pour simplifier et clarifier les licences, Oracle à partir de Java 9 fournit deux versions Java distinctes :
-
Oracle OpenJDK est publié sous la licence publique générale GNU v2 open source, avec l’exception liée au Classpath (GPLv2 + CPE),
-
Les versions du produit « Oracle-Java-SE », qui incluent le « Oracle-OpenJDK » pour Java 8 et versions ultérieures, et le JRE Oracle avec « Java-Web-Start » en Java 8, conformément au contrat de licence OTN (licence Oracle gratuite) pour « Java SE ». Cette licence permet une utilisation personnelle, le développement, les tests, le prototypage, la démonstration et certaines autres utilisations sans frais.
Si vous êtes une entreprise habituée à obtenir gratuitement les fichiers binaires Oracle Java SE, vous pouvez simplement continuer à le faire avec les versions OpenJDK d’Oracle disponibles à l’adresse http://jdk.java.net/. Si vous êtes habitué à obtenir gratuitement des binaires Oracle Java SE en tant qu’utilisateur personnel ou pour une utilisation en développement, vous pouvez continuer à obtenir les versions d’« Oracle-Java-SE » via https://java.com/ (utilisateurs personnels) et Oracle Technology Network («OTN») (développeurs). Ceux qui souhaitent utiliser le « JDK-Oracle » ou le « JRE-Oracle » à d’autres fins auront besoin d’un abonnement « Java-SE ».
Le nouveau contrat de licence Oracle-Technology-Network pour « Oracle-Java-SE » est substantiellement différent des licences antérieures « JDK-Oracle ». La nouvelle licence autorise certaines utilisations, telles que l’utilisation personnelle et l’utilisation à des fins de développement, sans frais supplémentaires.
Pour moi cela change quoi ?
Sous Windows, cela ne devrait pas changer grand-chose, mise à part que vous devrez vous créer un compte et vous identifier si vous passez par le site d’Oracle, mais si vous passiez par le magasin Microsoft probablement que cela sera transparent.
Ce changement de licence ressemble plus à une clarification qu’à une révolution, cependant elle n’est pas sans effet et en particulier pour le monde Linux.
Lors de vos prochaines mise à jour, vous aurez un message d'alerte du type:
E: Repository `http://ppa.launchpad.net/webupd8team/java/ubuntu bionic InRelease` changed its 'Label' value from 'Oracle Java (JDK) 8 Installer PPA' to 'Oracle Java (JDK) 8 Installer PPA (DISCONTINUED)'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N]
Spoiler : la réponse est non, l’explication dans la suite de l’article.
Les téléchargements « Oracle-Java » nécessitant désormais de se connecter à un compte Oracle, il n’est plus possible de passer par des dépôts (PPA) pour obtenir les prochaines versions, ni même les anciennes versions pour les anciens liens n’étant plus disponibles.
Pour cette raison, le dépôt (PPA) de l’équipe web upd8 est à priori définitivement arrêté, sauf si une solution de contournement venait à être découverte.
Que faire ?
Ce dépôt ne sera probablement plus jamais opérationnel, vous devez donc retirer toutes les références qui le concerne – et voici la raison pour ne pas accepter le changement de description, cela vous servira de pense-bête tant que cette opération n’aura pas été faite.
D’abord vous devez désinstaller proprement ce que vous avez installé à travers le dépôt. C’est probablement quelque chose comme !
sudo apt purge oracle-java8-installer oracle-java8-set-default
ou de manière plus radicale :
sudo apt purge oracle-java8-*
# voir même : sudo apt purge oracle-*
Ensuite, il faut désactiver le dépôt webupd8team-java
:
sudoedit /etc/apt/sources.list.d/webupd8team-java-bionic.list
# mettre les lignes en commentaires
sudo apt update
Ou plus radical :
sudo rm /etc/apt/sources.list.d/webupd8team-java-bionic.list
sudo apt update
Ensuite, si vous aviez installé Java c’est probablement que vous l’utilisez quelque part, vérifier que vous avez toujours une version de java disponible à l’aide de :
which java
# devrait vous répondre : /usr/bin/java
Si la réponse est vide c’est que le programme « java » n’est plus disponible depuis la ligne de commande. À venir un billet sur l’installation d’« OpenJDK » et sur le paquet alternative
.
Mais si vous aviez installé le JDK d’Oracle, c’est que probablement vous vouliez le kit de développement et donc c’est plutôt la commande « javac » qu’il faut tester :
which javac
Si la commande « javac » n’est pas disponible vous devrez l’installer.
Vous utilisez quelque chose qui n’est pas disponible dans OpenJDK ?
Vous avez installé OpenJDK et quelque chose n’est pas disponible ?
Le plus probable est que vous avez un souci dans votre installation.
Mais si vous être certain que la JVM est correctement installée, il est fort probable que vous ne soyez pas en règle avec la licence Oracle. Et c’est d’ailleurs ici qu’on trouve l’intérêt, pour Oracle, dans ce changement. Je connais quelques entreprises qui vont devoir se mettre à jour côté licences ou plus probablement qu’elles mettront en production la version développeur de Java…
Références
- https://launchpad.net/~webupd8team/+archive/ubuntu/java
- https://www.oracle.com/technetwork/java/javase/overview/oracle-jdk-faqs.html
ᦿ