webentwicklung-frage-antwort-db.com.de

Wie kann man beheben, dass Gradle Java 10 unter Linux nicht erkennt?

Beim Arbeiten mit der neuesten Gradle-Version mit Java 10 unter Linux wird die Versionsnummer von Java nicht als 10 als gültige Java-Version identifiziert. Wie kann dieses Problem auf Linux-Maschinen behoben werden? Protokolldetails des Fehlers hier

Und hier ist der vollständige Fehlerbericht (Hinweis: Wenn Sie gradle --version oder gradle -v ausführen, erhalten Sie dieselbe Ausgabe:

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: Ausgabe von 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)

Ausgabe der 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

Sie müssen Gradle aktualisieren. Version 4.5.1 und höher unterstützen auf jeden Fall Java 10.

Wenn Sie der Meinung sind, dass Sie 4.5.1 oder höher installiert haben, aber gradle -version noch nicht ausgeführt wird, ist es möglich, dass Sie bei Eingabe von gradle in der Befehlszeile aus irgendeinem Grund eine ältere Version ausführen.

Eine übliche Sache ist Alias ​​gradle to ./gradlew, so dass Sie im Kontext eines Gradle-Projekts den Wrapper Gradle anstelle des Systems Gradle verwenden. Dies ist normalerweise hilfreich, aber in einer Situation wie dieser schlägt sie fehl. Sie sollten das installierte System Gradle mit which ermitteln können:

> 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

(Ich habe einige Warnungen vor illegalen reflektierten Zugriffen erhalten. Wenn Sie solche bekommen, machen Sie sich keine Sorgen.)

Wenn $(which gradle) -version immer noch nicht ausgeführt wird, müssen Sie die Systemstufe aktualisieren. Ist dies der Fall, können Sie zur Aktualisierung des Gradle-Wrappers Ihren build.gradle - bearbeiten.

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

- und verwenden Sie dann das System Gradle, um die Aufgabe wrapper erneut auszuführen:

> $(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

Helfen Sie mit ppa und aktualisieren Sie Ihre Gradle-Version. Ubuntu 17 wird mit Gradle Sudo apt install gradle geliefert, der die Standard-Gradle-Version installiert. 

um ein Upgrade für Java 10 durchzuführen, müssen Sie den folgenden Befehl ausführen.

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

Jungs, ich habe das Problem in diesem Fall gefunden. Ich habe gradle aus den offiziellen Debian-Repositories installiert, die eine veraltete Version von gradle enthielten, die Java 10 nicht unterstützte. Beim Herunterladen und Installieren von Gradle von der offiziellen Site und durch Soft-Verknüpfung mit/usr/bin/gradle hat gut funktioniert. Das Problem bestand im Wesentlichen darin, gradle aus den derzeit veralteten Debian-Repositories zu installieren.

0
Jagreet