You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu版GitHub Actions Runner中如何为JAVA_HOME添加/bin后缀?

GitHub Actions中修正JAVA_HOME路径的问题

问题场景

你的GitHub Actions工作流中,通过actions/setup-java@v2配置Java环境后,后续依赖Java的步骤报错:

ERROR: The JAVA_HOME environment variable is not defined correctly. JAVA_HOME is set to /opt/hostedtoolcache/Java_Adopt_jdk/21.0.4-7.0.LTS/x64 and it does not exist.

实际需要的JAVA_HOME路径应为/opt/hostedtoolcache/Java_Adopt_jdk/21.0.4-7.0.LTS/x64/bin,需要为现有JAVA_HOME添加/bin后缀。

你的工作流片段如下:

steps:
  .
  .
  - name: Setup Java
    uses: actions/setup-java@v2
    with:
      distribution: 'adopt'
      java-version: '21'
  .
  .
  - name: Step that needs Java
    uses: ...
    with:
      ...

解决方案

方法1:全局更新JAVA_HOME(所有后续步骤生效)

在Setup Java步骤之后添加一个步骤,通过GITHUB_ENV环境变量持久化更新后的JAVA_HOME:

- name: Setup Java
  uses: actions/setup-java@v2
  with:
    distribution: 'adopt'
    java-version: '21'

# 新增步骤:更新JAVA_HOME路径
- name: Update JAVA_HOME to include /bin
  run: echo "JAVA_HOME=${JAVA_HOME}/bin" >> $GITHUB_ENV

- name: Step that needs Java
  uses: ...
  with:
    ...

这个操作会将修改后的JAVA_HOME注入到后续所有步骤的环境变量中。

方法2:仅在目标步骤中覆盖JAVA_HOME

如果只有单个步骤需要修改后的JAVA_HOME,可以直接在该步骤的env字段中覆盖:

- name: Setup Java
  uses: actions/setup-java@v2
  with:
    distribution: 'adopt'
    java-version: '21'

- name: Step that needs Java
  uses: ...
  with:
    ...
  env:
    JAVA_HOME: ${{ env.JAVA_HOME }}/bin

这种方式只会对当前步骤生效,不影响其他步骤的JAVA_HOME配置。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:50:05