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

Jenkins Maven构建报错:指定OpenJDK路径下Java文件未找到

问题原因与解决方案

核心问题是CPU架构不匹配:你在Jenkins工具中配置的OpenJDK 19.0.2,其CPU架构与Jenkins运行的系统架构不一致。

为什么会出现"文件存在但执行提示not found"?

这个错误信息具有误导性——ls能列出文件仅说明路径正确,但系统执行二进制文件时会检查架构兼容性,当二进制文件架构与当前系统不匹配时,就会抛出"not found"错误,而非更直观的架构不兼容提示。

验证方法

在流水线中添加Shell步骤验证架构:

sh 'file /var/jenkins_home/tools/hudson.model.JDK/openjdk-19.0.2/jdk-19.0.2/bin/java'
sh 'uname -m'

对比两者输出:比如uname -m输出x86_64(amd64架构),但file命令显示JDK是aarch64(arm64架构),就确认了架构不匹配。

解决方法

  1. 替换匹配架构的JDK
    重新下载与Jenkins系统架构一致的OpenJDK 19.0.2安装包,替换Jenkins工具目录/var/jenkins_home/tools/hudson.model.JDK/openjdk-19.0.2/下的文件。

  2. 使用系统已兼容的JDK
    修改Jenkins的JDK配置,将openjdk-19.0.2的路径直接指向系统中可正常运行的/opt/java/openjdk,无需再单独下载。

  3. 流水线临时指定JAVA_HOME(快速绕开)
    无需修改全局配置,直接在流水线中指定兼容的JAVA_HOME:

    pipeline {
      agent any
      tools {
        maven 'Maven 3.9.0'
      }
      environment {
        JAVA_HOME = '/opt/java/openjdk'
        PATH = "${env.JAVA_HOME}/bin:${env.PATH}"
      }
      stages {
        stage ('Build') {
          steps {
            sh 'mvn clean package'
          }
        }
        stage ('Deploy') {
          steps {
            script {
              echo 'Deploy'
            }
          }
        }
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:33:16