use*_*425 7 openjdk jenkins 18.04
我尝试安装支持 Java 11 的最新稳定 Jenkins 版本。因此,在安装 Java 11(JDK) 后,我从 Jenkins 收到错误消息,指出发现了不正确的 Java 版本。
于是卸载了 Java 11 并尝试安装 Java 8。在安装 Java 8 时,Jenkins 消息incorrect java version反复出现。所以,我完全删除这两个Java的11(JDK)和Java 8(JDK),并确保没有文件夹是否有/usr/bin和/usr/lib/jvm我安装的Java 8系统说安装了JDK 8,但我不是能找到为Java 11和java 8.我系统中的任何 Java 版本。为什么?
小智 29
我刚刚遇到这个问题,它实际上看起来像/etc/init.d/jenkinsJava版本测试的问题。我刚刚在这里发布了一个解决方案:https : //dorian.fraser-moore.com/works/5054500/ubuntu-and-jenkins-found-an-incorrect-java-version,下面分享给那些发现这个问题作为第一个谷歌的人打。
在最近更新了我的 Ubuntu 20.04.1 LTS 开发服务器之后,我的 Jenkins 安装在启动时停止运行。检查systemctl status jenkins.service返回的这组消息
Nov 13 09:35:43 tattve jenkins[1038744]: Found an incorrect Java version
Nov 13 09:35:43 tattve jenkins[1038744]: Java version found:
Nov 13 09:35:43 tattve jenkins[1038776]: openjdk version "11.0.9.1" 2020-11-04
Nov 13 09:35:43 tattve jenkins[1038776]: OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
Nov 13 09:35:43 tattve jenkins[1038776]: OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Nov 13 09:35:43 tattve jenkins[1038744]: Aborting
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为 jenkins 支持 Java 11 和 openJDK,事实上我以前一直在运行它。
仔细研究了一下,我注意到 init 脚本/etc/init.d/jenkins,该脚本在第 56-60 行使用 SED 将 java - version 命令中的版本提取为数值,但正则表达式有点宽泛
# Which Java versions can be used to run Jenkins
JAVA_ALLOWED_VERSIONS=( "18" "110" )
# Work out the JAVA version we are working with:
JAVA_VERSION=$($JAVA -version 2>&1 | sed -n ';s/.* version "\(.*\)\.\(.*\)\..*".*/\1\2/p;')
Run Code Online (Sandbox Code Playgroud)
事实证明,最后一行是将 JAVA_VERSION 设置为 11.09,这与 JAVA_ALLOWED_VERSION 中的任何内容都不匹配。我可以将 11.09 添加到 JAVA_ALLOWED_VERSIONS 以使其运行,但更好的解决方法似乎是修复那个宽松的 sed 行。将其更改为:
JAVA_VERSION=$($JAVA -version 2>&1 | sed -n ';s/.* version "\([0-9]*\)\.\([0-9]*\)\..*".*/\1\2/p;')
Run Code Online (Sandbox Code Playgroud)
做了工作。它可能会帮助别人。
[尽职调查编辑]
看起来有人已经为修复做了一个 PR:https : //github.com/jenkinsci/packaging/pull/198
Jenkins与 Ubuntu 提供的包完美openjdk配合。您甚至可以决定您喜欢哪个 OpenJDK 版本:
# headless JRE is enough for Jenkins
$ sudo apt install openjdk-8-jre-headless
# or with JAVA 11
$ sudo apt install openjdk-11-jre-headless
Run Code Online (Sandbox Code Playgroud)
这篇关于如何维护多个 Java 版本的文章。
有一些关于如何安装上游 jenkins Debian 软件包的非常简单的文档。
$ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add
$ sudo bash -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt update
$ sudo apt-get install jenkins
Run Code Online (Sandbox Code Playgroud)
这应该够了吧。
如果您使用基于包的 Jenkins 安装,请使用以下命令删除包:
$ sudo apt remove jenkins
Run Code Online (Sandbox Code Playgroud)
如果您使用 Jenkins 站点中的 tarball,只需删除安装它的文件夹即可。
| 归档时间: |
|
| 查看次数: |
8951 次 |
| 最近记录: |