Reputation: 71
I'm getting the error "/var/jenkins_home/tools/hudson.model.JDK/jdk8/bin/java: not found:" even though the path exists:
[edi-debatcher_master-LNI22Y2C5V3VECCBCFPVB3ZUWJJNMLK6LIFEQ6V3OYH52T74NU3A@2] Running shell script + echo 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 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 + echo 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 -version /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.5.3/bin/mvn: exec: line 199: /var/jenkins_home/tools/hudson.model.JDK/jdk8/bin/java: not found
I am using the Jenkins Blue Ocean feature, GitHub Jenkinsfile. I have "jdk8" and "Maven 3.5.3" defined in Global Tool Configuration, "autoinstall" checked.
Here is my Jenkinsfile:
pipeline { agent any stages { stage('Initialize') { steps { sh ''' echo "PATH = ${PATH}" echo "M2_HOME = ${M2_HOME}" mvn --version ''' } } stage('Build') { steps { sh 'mvn -Dmaven.test.failure.ignore=true install' } post { success { junit 'target/surefire-reports/**/*.xml' } } } } tools { maven 'Maven 3.5.3' jdk 'jdk8' } post { always { deleteDir() } } }
Upvotes: 4
Views: 3361
Reputation: 3548
You are running a wrong version of the file (here java) for the system.
Problem: The file is there and can not be executed. The error message is "No such file or directory"
Solution: You are running the wrong file version for your system.
The problem can occur for example if you run your Jenkins installation in a Docker container with Alpine Linux, since Alpine uses musl libc. The Oracle Java binaries only run on glibc.
Upvotes: 2
Reputation: 1
Once I changed the project JDK setting to system, my build progressed past this error.
Upvotes: 0
Reputation: 71
The problem was that the Oracle JDK autoinstall didn't really do anything on my system (confirmed by checking Jenkins' system properties for Java). I found that openjdk 1.8 happen to already be on that container, so I manually pointed JAVA_HOME to that instead of relying on the Oracle JDK autoinstall.
Upvotes: 1