web-dev-qa-db-fra.com

Jenkins, en spécifiant Java_HOME

J'ai installé openjdk-6-jdk sur ma boîte Ubuntu en utilisant apt-get.

Dans les informations système, jenkins me dit que Java.Home est /usr/lib/jvm/Java-6-openjdk/jre

Cependant, lorsque je spécifie ce répertoire sous la forme Java_HOME dans Jenkins: "configure system", un message d'erreur indiquant que ce répertoire ne ressemble pas à un répertoire jdk s'affiche.

il ne parvient pas non plus à récupérer mon installation Maven.

Est-ce que je manque quelque chose d'évident?

18
NimChimpsky

Votre variable Java_HOME doit être définie sur/usr/lib/jvm/Java-6-openjdk et doit être disponible pour l'utilisateur qui lance Jenkins.

De Kyle Strand commentaire:

A partir d'avril 2015 (je pense), Jenkins nécessite Java7. Notez également que le chemin binaire Java (Java) doit être défini sur la version correcte si la valeur par défaut du système est toujours Java 6. Enfin, pour ceux qui se demandent où ces variables sont définies, cela se trouve dans un fichier de configuration répertorié avec les instructions d'installation de Jenkins. page Web (par exemple, pour Debian, il s'agit de/etc/default/jenkins).

20

En utilisant Jenkins 2 (2.3.2 dans mon cas), la bonne manière semble insérer ce qui suit dans votre fichier de pipeline:

env.Java_HOME="${tool 'jdk1.8.0_111'}"
env.PATH="${env.Java_HOME}/bin:${env.PATH}"

"jdk1.8.0_111" étant le nom de la configuration Java initialement enregistrée dans Jenkins 

4
user1767316

Sur les systèmes CentOS 6.x et Redhat 6.x, le paquet openjdk-devel contient le jdk. C'est assez judicieux si vous connaissez le modèle -devel utilisé dans RedHat, mais déroutant si vous recherchez un paquet jdk conforme aux normes de nommage Java.

4
Mike Lococo

openjdk-6 est un environnement d'exécution Java, pas un JDK (kit de développement contenant javac, par exemple). Installez openjdk-6-jdk.

Maven a également besoin du JDK.

[EDIT] Lorsque le JDK est installé, utilisez /usr/lib/jvm/Java-6-openjdk pour Java_HOME (c'est-à-dire sans la partie jre).

2
Aaron Digulla

Au cas où quelqu'un aurait des problèmes similaires, j'ai utilisé les installations par défaut d'apt-get de Sudo pour les packages concernés et voici les paramètres corrects: 

Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386

et

MAVEN_HOME=/usr/share/maven2
1
NimChimpsky

Je voulais juste ajouter une solution pour les machines Windows.

  • Windows Server 2008 R2 Standard, SP1 
  • Jenkins 2.89.4 
  • Java version 8.171

Symptôme: le service Jenkins démarre et s’arrête immédiatement.
Jenkins.wrapper.log a une ligne indiquant le chemin incorrect vers Java:

- Démarrage de C:\Program Files\Java\jre1.8.0_141\bin\Java -Xrs -Xmx6g -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Fichiers de programme (x86)\Jenkins\jenkins.war" --httpPort = 8080 --webroot = "C:\Fichiers de programme (x86)\Jenkins\war"

Le correctif: Jenkins a le chemin codé en dur dans jenkins.xml. Modifiez le chemin d'accès vers le nouvel emplacement Java. 

Vous pouvez également utiliser les variables d'environnement Windows, mais je n'y suis pas parvenu et je ne pense pas que le programme d'installation Java les mette à jour. Vous devez donc le mettre à jour manuellement chaque fois.

1
BClaydon

Dans Ubuntu 12.04, je devais installer openjdk-7-jdk

alors javac travaillait! 

alors je pourrais utiliser 

/usr/lib/jvm/Java-7-openjdk-AMD64

0
lutinwood

Dans Jenkins, essayez de régler Java_HOME sur /usr/lib/jvm/Java-6-openjdk

0
Casey

Téléchargez le package package rpm à partir de http://pkg.jenkins-ci.org/redhat/ vous pouvez indiquer un emplacement Java supplémentaire, comme je dispose par défaut de 1.7 Java dans mon système, mais j'utilise /opt/jdk1.8.0_60/ bin/Java pour Jenkins. Ouvrez le script de démarrage de jenkins /etc/init.d/jenkins et ajoutez du Java supplémentaire ici, j’ai ajouté /opt/jdk1.8.0_60/bin/Java,

Recherchez dans Java utilisable comme/usr/bin/Java pourrait ne pas pointer vers la version minimale requise par Jenkins.

Voir http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html

candidats = "/opt/jdk1.8.0_60/bin/Java

0
Hasan S Syed

En passant de Ubuntu 10.0.4 à 12.0.4, nous nous sommes trompés. Nous avions une installation JDK configurée (auto-configurée?) Pointant vers /usr/lib/jvm/Java-6-openjdkelle ne contenait plus de JDK,/default-Java corrigé et devrait permettre une mise à niveau transparente de Java-7.

Donc, pour répondre à la question: ne spécifiez pas Java_HOME sur Ubuntu.

0
TimP

Ceci est un vieux fil, mais pour les versions plus récentes de Jenkins (dans mon cas, Jenkins 2.135) nécessitant un JDK Java particulier, ceci devrait aider:

Note: Ceci est pour Centos 7, les autres distributions peuvent avoir des emplacements de répertoire différents même si je pense qu’elles sont également correctes pour Ubuntu.

Modifiez /etc/sysconfig/jenkins et définissez la variable JENKINS_Java_CMD="/<your desired jvm>/bin/Java" (accès root requis)

Exemple:

JENKINS_Java_CMD="/usr/lib/jvm/Java-1.8.0-openjdk/bin/Java"

Redémarrez Jenkins (si Jenkins est exécuté en tant que service Sudo service jenkins stop puis Sudo service jenkins start)

Ce qui précède a corrigé l’installation de Jenkins qui ne démarre pas après la mise à niveau vers Java 10 et Jenkins vers la version 2.135.

JavajenkinsJava-homeubuntucentos

0
D Turner