web-dev-qa-db-fra.com

Comment réparer Gradle ne reconnaissant pas Java 10 sur Linux?

Lors de l'utilisation de la dernière version de Gradle avec Java 10 sur Linux, le numéro de version de Java attribué à la version 10 n'est pas identifié. Comment résoudre ce problème sur les machines Linux? Enregistre les détails de l'erreur ici

Et voici le rapport d'erreur complet (NB: l'exécution de gradle --version ou gradle -v donne également le même résultat:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine Java version from '10'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

EDIT: Sortie de gradle --stacktrace

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine Java version from '10'.

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
Java.lang.IllegalArgumentException: Could not determine Java version from '10'.
at org.gradle.api.JavaVersion.toVersion(JavaVersion.Java:70)
at org.gradle.api.JavaVersion.current(JavaVersion.Java:80)
at org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.Java:29)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.Java:32)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.Java:24)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.Java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.Java:22)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.Java:210)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.Java:174)
at org.gradle.launcher.Main.doAction(Main.Java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.Java:45)
at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.base/Java.lang.reflect.Method.invoke(Method.Java:564)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.Java:60)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.Java:37)
at org.gradle.launcher.GradleMain.main(GradleMain.Java:23)

Sortie de Java --version

Java 10 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
8
Jagreet

Vous devez mettre à niveau Gradle. Les versions 4.5.1 et ultérieures prennent définitivement en charge Java 10.

Si vous pensez que la version 4.5.1 ou ultérieure est installée, mais que gradle -version ne s'exécute toujours pas, il est possible que lorsque vous tapez gradle sur la ligne de commande, une version plus ancienne exécute toujours pour une raison quelconque.

Une chose courante à faire est d'alias gradle à ./gradlew. Ainsi, dans le contexte d'un projet Gradle, vous utiliserez le wrapper Gradle plutôt que le système Gradle. Ceci est généralement utile, mais dans une situation comme celle-ci, il se retourne contre lui. Vous devriez pouvoir déterminer le système installé Gradle avec which:

> which gradle
/usr/local/bin/gradle
> $(which gradle) -version

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Mac OS X 10.13.4 x86_64

(J'ai éludé certains avertissements au sujet de l'accès illégal par réflexion, si vous en avez, ne vous en faites pas.)

Si $(which gradle) -version ne s'exécute toujours pas, vous devez mettre à niveau le dégradé système. Mais si c'est le cas, pour mettre à jour le wrapper Gradle, vous pouvez éditer votre build.gradle -

task wrapper(type: Wrapper) {
  gradleVersion = '4.6'
}

- puis utilisez le système Gradle pour réexécuter la tâche wrapper:

> $(which gradle) wrapper
Starting a Gradle Daemon (subsequent builds will be faster)

BUILD SUCCESSFUL in 7s
1 actionable task: 1 executed
> ./gradlew -version
Downloading https://services.gradle.org/distributions/gradle-4.6-bin.Zip
......................................................................

[etc.]

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          10.0.1 ("Oracle Corporation" 10.0.1+10)
OS:           Mac OS X 10.13.4 x86_64
5
David Moles

Prenez l’aide de ppa et mettez à niveau votre version de gradle. Ubuntu 17 est fourni avec gradle Sudo apt install gradle installera la version par défaut de gradle. 

mettre à niveau pour Java 10 doit exécuter la commande ci-dessous.

Sudo add-apt-repository ppa:cwchien/gradle
Sudo apt-get update
Sudo apt upgrade gradle
2
Kumar Abhishek

Les gars, j'ai trouvé le problème dans ce cas. J'ai installé gradle à partir des dépôts officiels de Debian, qui contenait une version obsolète de gradle qui ne supportait pas Java 10. Lors du téléchargement et de l'installation de Gradle à partir du site officiel , et en la reliant de manière souple au/usr/bin/gradle, a bien fonctionné. Le problème consistait donc essentiellement à installer gradle à partir des référentiels Debian, qui sont actuellement obsolètes.

0
Jagreet