AWS CodeBuild Windows 2019配置Corretto17未生效问题咨询
在AWS CodeBuild Windows 2019环境中指定Corretto 17无效的问题解决
问题背景
我在AWS CodeBuild的Windows Server 2019环境构建JavaFX应用,因为要用jpackage打包Windows安装程序,必须用Java 14及以上版本(Java 11不支持jpackage)。按照AWS文档,windows-base:2019-2.0环境支持Corretto 17,所以我在构建spec里配置了:
phases: install: runtime-versions: java: corretto17
但执行java --version检查时,输出还是Java 11:
openjdk 11.0.15 2022-04-19 LTS OpenJDK Runtime Environment Corretto-11.0.15.9.1 (build 11.0.15+9-LTS) OpenJDK 64-Bit Server VM Corretto-11.0.15.9.1 (build 11.0.15+9-LTS, mixed mode)
解决方法
1. 检查并修正PATH环境变量
Windows环境下,CodeBuild设置runtime-version后,PATH可能没自动优先指向Corretto 17的路径。可以先在build阶段加命令查看当前PATH:
echo $env:PATH
Corretto 17默认安装路径一般是C:\Program Files\Amazon Corretto\jdk17.x.x_xx,如果这个路径不在PATH最前面,系统会先找到Java 11的路径。
手动在构建spec里更新PATH:
phases: install: runtime-versions: java: corretto17 build: commands: # 先确认Corretto 17的具体安装目录 - dir "C:\Program Files\Amazon Corretto\" # 设置JAVA_HOME并更新PATH - $env:JAVA_HOME = "C:\Program Files\Amazon Corretto\jdk17.0.9_9" - $env:PATH = "$env:JAVA_HOME\bin;$env:PATH" # 再次检查版本 - java --version # 执行你的构建和jpackage命令
注意把jdk版本号换成你实际看到的目录名。
2. 确认CodeBuild镜像版本
确保项目用的是windows-base:2019-2.0或更高版本的镜像。可以在项目的环境设置里检查,或者直接在构建spec中指定:
environment: image: aws/codebuild/windows-base:2019-2.0
3. 清理构建缓存
CodeBuild的缓存可能保留了旧的Java环境配置,尝试临时禁用缓存后重新构建,看是否能加载正确的Corretto 17版本。
内容的提问来源于stack exchange,提问作者anoncgain
相关产品推荐
相关产品推荐

