Is there a way to change the java JRE a linux Jenkins server uses?

A Jenkins server is running under Java 1.7 on a linux machine and I need to change it to 1.8 so that I can run a specific plugin.

The Linux machine has a Java 1.8 JDK/JRE installed, but I cant find a way to tell the Jenkins server to use it? I've found guides on Windows servers how to do this, but nothing that relates or transfers to Linux Jenkins servers.

Is there a way to change the JRE used by the Jenkins server on linux?

Like a linux version of this: https://dzone.com/articles/make-jenkins-windows-service

7
задан 30 June 2017 в 16:20
6 ответов

На главной странице Jenkins слева щелкните «Manage Jenkins». Войдите в меню «Global Tool Configuration», и в этом меню примерно на полпути есть место, где должно быть написано «JDK Installations». Нажмите эту кнопку, и откроется новое меню, в котором вы можете добавить альтернативный JDK. После добавления вы заходите в проект, который хотите построить, и нажимаете «Настроить». Опять же, примерно на полпути вниз будет выпадающее «JDK». Теперь появится новый JDK, и вы можете выбрать его для сборки проекта.

Однако, если вы имеете в виду, что хотите, чтобы вся служба запускалась с другой виртуальной машины, это немного сложнее. Сценарий запуска Jenkins написан, чтобы попытаться «угадать» вашу виртуальную машину, чтобы упростить ее установку в нескольких вариантах Linux. Найдите сценарий запуска (при установке Red Hat RPM он помещается в /etc/rc.d/init.d/jenkins) и прочтите его. Вы найдете раздел под названием «кандидаты» и заметите, как цикл проходит через возможные JVM, которые могут быть в системе. Вы можете отредактировать этот список, указав только виртуальную машину, которую вы хотите использовать, а затем остановить / запустить, чтобы заставить ее использовать нужную виртуальную машину. На всякий случай обязательно скопируйте сценарий перед его редактированием.

1
ответ дан 2 December 2019 в 23:49

В зависимости от дистрибутива , у вас будет один из «/ etc / sysconfig / jenkins» или «/ etc / default / jenkins».

У этого будет свойство для установки домашнего местоположения Java. Обычно все параметры закомментированы, чтобы показать, что файл может настраивать.

1
ответ дан 2 December 2019 в 23:49

Определите переменную JAVA_HOME :

Отредактируйте / etc / profile с помощью вашего любимого текстового редактора.

export JAVA_HOME="path to java"
export PATH=$JAVA_HOME/bin:$PATH

Затем

source /etc/profile

по порядку для применения изменений.

0
ответ дан 2 December 2019 в 23:49

Это характерно для версии установщика Macintosh (в интересах тех, кто был доставлен сюда, как и я, с помощью веб-поиска), и путь зависит от версии Java, которую хочет Дженкинс для запуска, который должен сосуществовать с версией Java, с которой нам нужно протестировать. Это уродливо, но менее уродливо, чем то, что там было (дублированный жестко запрограммированный путь), или чем любое другое предложение, которое я смог найти.

Я добавил / изменил следующее в начале и в конце / Library / Application \ Support / Jenkins / jenkins-runner.sh :

javaBin=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java
…
echo $javaBin $javaArgs -jar "$war" $args
exec $javaBin $javaArgs -jar "$war" $args

Конечно, было бы лучше, если бы этот параметр был в org.jenkins-ci.plist , но это все равно потребует изменений в jenkins-runner.sh , так что это было минимальное изменение для наших целей.

0
ответ дан 2 December 2019 в 23:49

Одним из способов этого является редактирование стартового файла: /etc/init.d/jenkins.

По умолчанию просто выполняется java, полагаясь, таким образом, на то, что находится в переменной окружения PATH. Вы можете указать пользовательский исполняемый файл Java, отредактировав строку:

`/etc/init.d/jenkins`

-

JAVA='/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java'

Затем вы должны запустить systemctl daemon-reload, чтобы получить изменения.

Это то, что я должен был сделать, чтобы заставить Jenkins использовать Java 8 на системе Ubuntu, в которой по умолчанию установлена Java 11. Для меня было неприемлемо просто apt удалить openjdk-11-jdk-headless или update-alternatives --config java и выбрать Java 8 по умолчанию. Предупреждение при редактировании стартового файла заключается в том, что он может быть перезаписан при обновлении Jenkins: мне придется за ним присмотреть.

0
ответ дан 2 December 2019 в 23:49

Это для пользователей Windows, которые случайно наткнулись на этот вопрос (как и я). Вам необходимо установить переменную системной среды JAVA_HOME.

  1. остановить службу jenkins
  2. отредактировать в базовой папке jenkins отредактировать jenkins.xml - в этой строке "% JAVA_HOME% \ jre \ bin \ java" изменить% BASE% на% JAVA_HOME%

    % JAVA_HOME% \ jre \ bin \ java -Xrs -Xmx256m -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "% BASE% \ jenkins.war" --httpPort = 8080 --webroot = "% BASE% \ war"

  3. start jenkins

0
ответ дан 28 February 2020 в 17:45

Теги

Похожие вопросы