首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复Linux上不识别Java 10的Gradle?

如何修复Linux上不识别Java 10的Gradle?
EN

Stack Overflow用户
提问于 2018-04-05 03:06:52
回答 3查看 4.5K关注 0票数 8

在Linux上使用Java 10的最新版本时,它无法将Java的版本号识别为10为有效的Java版本。如何在Linux机器上解决这个问题?记录错误这里的详细信息

以下是完整的错误报告(N.B.运行gradle --versiongradle -v也提供了相同的输出:

代码语言:javascript
复制
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.

编辑:gradle --stacktrace的输出

代码语言:javascript
复制
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)

java -版本的输出

代码语言:javascript
复制
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)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-17 17:25:24

你需要升级Gradle。版本4.5.1及更高版本肯定支持Java 10。

如果您认为您已经安装了4.5.1或更高版本,但gradle -version仍然无法运行,那么在命令行输入gradle时,可能会因为某种原因仍然运行旧版本。

要做的一件常见事情是将gradle别名为./gradlew,因此在Gradle项目的上下文中,您将使用包装器Gradle而不是系统Gradle。这通常是有帮助的,但在这种情况下,它适得其反。您应该能够用which确定已安装的系统级别。

代码语言:javascript
复制
> 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

(我已经删除了一些关于非法反光访问的警告,如果你得到了这些警告,不要担心它们。)

如果$(which gradle) -version仍然无法运行,则需要升级系统gradle。但是如果是这样的话,要更新Gradle包装器,可以编辑build.gradle --

代码语言:javascript
复制
task wrapper(type: Wrapper) {
  gradleVersion = '4.6'
}

-然后使用系统级重新运行wrapper任务:

代码语言:javascript
复制
> $(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
EN

Stack Overflow用户

发布于 2018-05-25 12:01:44

在ppa的帮助下,升级你的分级版本,Ubuntu 17附带gradle sudo apt install gradle将安装默认的gradle版本。

要升级java 10,需要在命令下面运行。

代码语言:javascript
复制
sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update
sudo apt upgrade gradle
票数 2
EN

Stack Overflow用户

发布于 2018-06-13 15:00:50

伙计们我发现了这个案子的问题。我从正式的debian存储库中安装了gradle,其中包含了一个过时版本的gradle,它不支持Java 10。在从官方网站下载和安装Gradle并将其软链接到/usr/bin/gradle时,它工作得很好。因此,问题实质上是从debian存储库中安装gradle,该库目前已经过时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49663507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档