4 votes

Erreur de construction de Gradle 5 et Java 11 : Pourquoi Gradle pense-t-il que j'utilise Java 10 ?

Je ne parviens pas à construire mon projet en utilisant Java 11 et Gradle 5. Je reçois l'erreur suivante en essayant de construire :

$ gradle clean build
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 10 (1.10)'.

Pourquoi Gradle pense-t-il que j'utilise le JDK 10 ? Mon site $JAVA_HOME est réglé sur /usr/lib/jvm/java-1.11.0-openjdk-amd64/ qui est la version Linux d'OpenJDK pour Java 11 (disponible ici). https://jdk.java.net/11/ ). J'utilise Gradle 5, mais cette erreur s'est également produite avec la version 4.10.2.

Vous trouverez ci-dessous les parties pertinentes de mon build.gradle :

apply plugin: 'java'
sourceCompatibility = 11

J'ai également essayé d'utiliser 1.11 pour la compatibilité des sources mais cela échoue également avec la même erreur.

4voto

heez Points 735

Le problème était unique à Ubuntu 18. Le "JDK11" qui se trouve dans la version apt est en fait JDK10 avec des mises à jour de sécurité rétroportées de JDK11. C'est assez confus, donc il y a un rapport de bogue ouvert avec Ubuntu . Voir aussi ce post sur l'échange de piles AskUbuntu .

Pour résoudre ce problème, vous devez configurer manuellement votre système pour utiliser un JDK11 réel. J'ai fait quelque chose de similaire à ce guide pour le réparer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X