it-swarm.com.de

Jenkins, die Java_HOME angeben

Ich habe openjdk-6-jdk mit apt-get auf meiner Ubuntu-Box installiert.

In der Systeminfo sagt mir Jenkins Java.Home ist /usr/lib/jvm/Java-6-openjdk/jre

Wenn ich jedoch dieses Verzeichnis als Java_HOME in Jenkins: "configure system" vorgeben, wird eine Fehlermeldung mit der Meldung ausgegeben, dass das Verzeichnis nicht wie ein jdk-Verzeichnis aussieht.

meine Maven-Installation wird auch nicht abgeholt.

Fehlt mir etwas offensichtliches?

18
NimChimpsky

Ihre Java_HOME-Variable muss auf/usr/lib/jvm/Java-6-openjdk festgelegt sein und muss für den Benutzer verfügbar sein, der Jenkins startet.

Von Kyle Strand Kommentar:

Seit April 2015 (glaube ich) benötigt Jenkins Java7. Beachten Sie auch, dass der Java-Binärpfad (Java) auf die richtige Version gesetzt werden muss, wenn der Systemstandard immer noch Java 6 ist. Wenn Sie sich fragen, wo diese Variablen eingestellt sind, ist dies in einer Konfigurationsdatei mit den Installationsanweisungen auf den Jenkins aufgeführt Webseite (z. B. für Debian ist dies/etc/default/jenkins).

20

Bei Verwendung von Jenkins 2 (in meinem Fall 2.3.2) scheint der richtige Weg Folgendes in Ihre Pipeline-Datei einzufügen:

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

"jdk1.8.0_111" ist der Name der Java-Konfiguration, die ursprünglich in Jenkins registriert wurde 

4
user1767316

Auf CentOS 6.x- und Redhat 6.x-Systemen enthält das openjdk-devel-Paket das jdk. Es ist sinnvoll, wenn Sie mit dem -devel-Muster von RedHat vertraut sind, aber verwirrend, wenn Sie nach einem jdk-Paket suchen, das den Java-Namensstandards entspricht.

4
Mike Lococo

openjdk-6 ist eine Java-Laufzeitumgebung, kein JDK (Entwicklungskit, das beispielsweise javac enthält). Installieren Sie openjdk-6-jdk.

Maven braucht auch das JDK.

[EDIT] Wenn das JDK installiert ist, verwenden Sie /usr/lib/jvm/Java-6-openjdk für Java_HOME (d. H. Ohne den Teil jre).

2
Aaron Digulla

Falls jemand ähnliche Probleme hat, habe ich die Standardinstallationen von Sudo apt-get für die entsprechenden Pakete verwendet. Hier sind die richtigen Einstellungen: 

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

und

MAVEN_HOME=/usr/share/maven2
1
NimChimpsky

Ich wollte nur eine Lösung für Windows-Maschinen hinzufügen.

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

Symptom: Der Jenkins-Dienst wird gestartet und sofort beendet.
Jenkins.wrapper.log hat eine Zeile, die den falschen Pfad zu Java angibt:

- Starten von C:\Programme\Java\jre1.8.0_141\bin\Java -Xrs -Xmx6g -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Programme (x86)\Jenkins\jenkins.war" --httpPort = 8080 --webroot = "C:\Programme (x86)\Jenkins\war"

Der Fix: Jenkins hat den Pfad in jenkins.xml fest codiert. Ändern Sie den Pfad zum neuen Java-Speicherort. 

Sie können auch Windows-Umgebungsvariablen verwenden, aber ich war damit nicht erfolgreich, und ich glaube nicht, dass das Java-Installationsprogramm diese aktualisiert. Sie müssten dies also jedes Mal von Hand aktualisieren.

1
BClaydon

In Ubuntu 12.04 musste ich openjdk-7-jdk installieren.

dann Javac funktionierte! 

dann könnte ich verwenden 

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

0
lutinwood

In Jenkins setzen Sie Java_HOME auf /usr/lib/jvm/Java-6-openjdk.

0
Casey

Laden Sie das Paket rpm-Paket von http://pkg.jenkins-ci.org/redhat/ herunter. Sie können einen zusätzlichen Java-Speicherort angeben, z. bin/Java für Jenkins. Öffnen Sie das Jenkins-Startskript /etc/init.d/jenkins und fügen Sie hier zusätzliches Java hinzu. Ich habe /opt/jdk1.8.0_60/bin/Java hinzugefügt.

Durchsuchen Sie verwendbares Java als/usr/bin/Java möglicherweise nicht auf die von Jenkins geforderte Mindestversion.

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

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

0
Hasan S Syed

Wenn Sie an diesem Problem interessiert sind und Zugriff auf die Konfiguration Ihrer Jenkins-Agenten haben, können Sie Java_HOME von den Jenkins> Nodes> "der Agentenname"> Seite "Konfigurieren":

Einstellen der Umgebungsvariablen "pro Agent"

0
cstroe

Bei einem Upgrade von Ubuntu 10.0.4 auf 12.0.4 haben wir einen falschen Weg gefunden. Wir hatten eine JDK-Installation konfiguriert (automatisch konfiguriert?), Die auf /usr/lib/jvm/Java-6-openjdk zeigt. Diese enthielt kein JDK mehr Ändern in/usr/lib/jvm/default-Java behoben und sollte für ein nahtloses Java-7-Upgrade sorgen.

Also auf die Frage antworten: Geben Sie unter Ubuntu kein Java_HOME an.

0
TimP

Dies ist ein alter Thread, aber für neuere Jenkins-Versionen (in meinem Fall Jenkins 2.135), die ein bestimmtes Java-JDK benötigen, sollte Folgendes helfen:

Hinweis: Dies ist für Centos 7, andere Distributionen können unterschiedliche Verzeichnispositionen haben, obwohl ich glaube, dass sie auch für Ubuntu korrekt sind.

Ändern Sie /etc/sysconfig/jenkins und setzen Sie die Variable JENKINS_Java_CMD="/<your desired jvm>/bin/Java" (Root-Zugriff erforderlich)

Beispiel:

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

Jenkins neu starten (wenn Jenkins als Dienst Sudo service jenkins stop und Sudo service jenkins start ausgeführt wird)

Das obige Problem, bei dem meine Jenkins-Installation nach dem Upgrade auf Java 10 und Jenkins auf 2.135 nicht mehr gestartet wurde, wurde behoben

JavaJenkinsJava-HomeubuntuCentos

0
D Turner