You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux环境下Gradle无法识别Java 10,该如何解决?

解决Gradle无法识别Java 10版本的问题

这个问题我之前帮不少开发者排查过,核心原因很明确:你当前使用的Gradle版本不兼容Java 10。早期Gradle的版本检测逻辑只适配到Java 9,没法识别Java 10开始采用的纯数字版本号格式(比如10,而非之前的1.8这种带前缀的格式)。Gradle从4.7版本开始正式支持Java 10,所以你需要确保使用的Gradle版本符合要求,下面是具体的解决步骤:

一、先确认当前环境的版本信息

先搞清楚问题到底出在哪,运行以下命令检查版本:

  • 查看Java版本:java -version
  • 查看系统级Gradle版本:gradle --version

如果输出的Gradle版本低于4.7,那这就是问题根源,必须升级Gradle。

二、升级系统级Gradle(Linux环境)

方法1:用SDKMAN管理(推荐,多版本切换更方便)

SDKMAN是Linux下管理JDK、Gradle这类开发工具的神器,步骤简单:

  1. 安装SDKMAN:
    curl -s "https://get.sdkman.io" | bash
    
    安装完后,执行source "$HOME/.sdkman/bin/sdkman-init.sh"让配置立即生效。
  2. 查看可用的Gradle版本:
    sdk list gradle
    
  3. 安装支持Java 10的版本(选4.7或更高,推荐装最新的稳定兼容版):
    sdk install gradle 4.7
    
    或者直接装最新版:
    sdk install gradle latest
    
  4. 设置默认使用的Gradle版本:
    sdk default gradle 4.7
    
    换成你刚安装的版本号就行。

方法2:手动下载安装

如果不想用SDKMAN,也可以手动操作:

  1. 去Gradle官方网站下载支持Java 10的版本(4.7及以上)的二进制包。
  2. 把压缩包解压到指定目录,比如/opt/gradle
    sudo unzip gradle-4.7-bin.zip -d /opt/gradle
    
  3. 配置环境变量,编辑~/.bashrc~/.profile文件,添加以下内容:
    export GRADLE_HOME=/opt/gradle/gradle-4.7
    export PATH=$GRADLE_HOME/bin:$PATH
    
  4. 让环境变量生效:
    source ~/.bashrc
    

三、如果项目用Gradle Wrapper的情况

如果你的项目是通过./gradlew(Gradle Wrapper)运行的,那可能是Wrapper配置的Gradle版本太低,需要升级Wrapper:

  1. 在项目根目录执行命令,指定升级到支持Java 10的版本:
    ./gradlew wrapper --gradle-version 4.7 --distribution-type bin
    
  2. 之后运行./gradlew --version确认版本已更新,这时应该能正常识别Java 10了。

四、临时应急方案(不推荐长期用)

如果暂时没法升级Gradle,可以用临时手段欺骗版本检测,但这只是权宜之计,长期来看还是升级Gradle更稳妥:

  1. 运行Gradle命令时临时设置环境变量:
    JAVA_VERSION=1.10 gradle --version
    
  2. 或者在项目的build.gradle中添加兼容代码:
    if (JavaVersion.current().isJava10()) {
        tasks.withType(JavaCompile) {
            options.compilerArgs += '--release'
            options.compilerArgs += '10'
        }
    }
    
    但这个方法可能引发其他兼容性问题,所以优先推荐升级Gradle版本。

内容的提问来源于stack exchange,提问作者Jagreet

火山引擎 最新活动