系统默认Java版本为8,如何仅为Flutter单独配置Java 11不修改全局设置
配置方法(均不会修改系统全局Java配置)
首先提前在服务器上安装Java 11,记录其安装路径,示例路径为/usr/lib/jvm/java-11-openjdk-amd64,你可以替换为自己环境的实际路径。
方案1:单次执行临时指定(最适配Jenkins构建服务器场景)
仅在执行Flutter命令的当前进程上下文指定JAVA_HOME,不会对其他命令、其他任务产生影响,直接在构建脚本中执行如下命令即可:
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 flutter build apk
将打包命令替换为你实际需要的Flutter命令即可。
方案2:当前用户级Flutter全局默认指定
如果需要当前用户执行的所有Flutter命令默认使用Java 11,可在当前用户的Shell配置文件(~/.bashrc/~/.zshrc等,根据你使用的Shell选择)中添加别名:
alias flutter='JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 flutter'
添加完成后执行source ~/.bashrc(对应你修改的配置文件)生效,后续直接执行flutter命令会自动使用指定的Java 11,执行java -version等其他命令仍会使用系统全局的Java 8。
方案3:单项目专属配置
如果仅需要单个Flutter项目使用Java 11,其他项目保持默认配置,在项目的android目录下新增/修改local.properties文件,添加如下配置:
org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64
该配置为Gradle原生支持,仅对当前项目生效,优先级高于全局JAVA_HOME。
验证方法
配置完成后执行flutter doctor -v,查看Android toolchain板块下的Java binary路径和版本信息,确认已切换为你指定的Java 11即可。
内容的提问来源于stack exchange,提问作者user1209216
相关产品推荐
相关产品推荐

