Zitrax
Zitrax

Reputation: 20246

JAVA_HOME is not defined correctly (only from jenkins)

Trying to setup jenkins but my builds fails with:

$ ant test
Error: JAVA_HOME is not defined correctly.
  We cannot execute /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
Build step 'Invoke Ant' marked build as failure

If I manually run "ant test" on the machine it works just fine and the JAVA_HOME is set to the exact same value. Any idea why it fails when jenkins try to run it ? Are there any more environment variabled involved ( I could not see any though ) ?

Upvotes: 15

Views: 41663

Answers (4)

frank
frank

Reputation: 1201

Set JAVA_HOME in your Jenkins system config in Jenkins 2.107.1.

open your jenkins, e.g. http://192.168.1.12:9090, then add /configure to the url, that is http://192.168.1.12:9090/configure, then you can find like next:

enter image description here

Upvotes: 4

Zitrax
Zitrax

Reputation: 20246

The problem was this, I had forgot to check the box "Restrict where this project can be run" in the project configuration. Thus the testing tried to execute on "master" where JAVA_HOME was not the same as expected on the build executor I intended to run it on. Thus where I tested and where it actually ran was different machines.

Upvotes: 5

Bryn
Bryn

Reputation: 385

For me the options above did not help, solved by creating a link to what's asked:

sudo ln -s ${actual_java_location} /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

actual_java_location can be read by this:

 readlink -f $(which java)

Upvotes: 1

Anil
Anil

Reputation: 21910

For others, I had to add the PATH /usr/bin/ to my PATH variable within Jenkins. (Find your correct path using which java).

Jenkins > Manage Jenkins > Configure System

Add an Environment Variable >>

e.g:

Name: PATH
Value: /usr/local/bin/:/usr/bin/

Screenshot

enter image description here

Upvotes: 11

Related Questions