3

我收到错误“/var/jenkins_home/tools/hudson.model.JDK/jdk8/bin/java: not found:”即使路径存在:

   

[edi-debatcher_master-LNI22Y2C5V3VECCBCFPVB3ZUWJJNMLK6LIFEQ6V3OYH52T74NU3A@2] 运行 shell 脚本
+ 回声路径 = /var/jenkins_home/tools/hudson.model.JDK/jdk8/bin:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3/bin:/var/jenkins_home/tools/hudson.model .JDK/jdk8/bin:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
PATH = /var/jenkins_home/tools/hudson.model.JDK/jdk8/bin:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3/bin:/var/jenkins_home/tools/hudson.model.JDK /jdk8/bin:/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin :/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
+ 回声 M2_HOME = /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3
M2_HOME = /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3
+ mvn -版本
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3/bin/mvn:exec:第 199 行:/var/jenkins_home/tools/hudson.model.JDK/jdk8/bin/java:未找到

我正在使用 Jenkins Blue Ocean 功能,GitHub Jenkinsfile。我在全局工具配置中定义了“jdk8”和“Maven 3.5.3”,选中了“自动安装”。

这是我的詹金斯文件:

    管道{
      代理任何
      阶段{
        阶段(“初始化”){
          脚步 {
            嘘'''
               回声“PATH = ${PATH}”
               回声“M2_HOME = ${M2_HOME}”
               mvn --版本
               '''
          }
        }
        阶段(“构建”){
          脚步 {
            sh 'mvn -Dmaven.test.failure.ignore=true install'
          }
          邮政 {
            成功 {
              junit '目标/surefire-reports/**/*.xml'
            }
          }
        }
      }
      工具 {
        行家'Maven 3.5.3'
        jdk'jdk8'
      }
      邮政 {
        总是 {
        删除目录()
        }
      }
    }

4

3 回答 3

2

您正在为系统运行错误版本的文件(此处为 java)。

问题: 文件存在,无法执行。错误消息是“没有这样的文件或目录”

解决方案: 您正在为您的系统运行错误的文件版本

例如,如果您在使用 Alpine Linux 的 Docker 容器中运行 Jenkins 安装,则可能会出现此问题,因为 Alpine 使用 musl libc。Oracle Java 二进制文件仅在 glibc 上运行。

于 2018-09-02T13:29:35.727 回答
1

问题是 Oracle JDK 自动安装在我的系统上并没有真正做任何事情(通过检查 Jenkins 的 Java 系统属性来确认)。我发现 openjdk 1.8 恰好已经在该容器上,因此我手动将 JAVA_HOME 指向该容器,而不是依赖 Oracle JDK 自动安装。

于 2018-04-28T19:26:33.013 回答
0

Once I changed the project JDK setting to system, my build progressed past this error.

于 2018-09-02T06:53:28.273 回答