jdk版本控制器sdkmanns安装部署(以及常见的错误报告解决方案)
时间:2025-06-24 11:39:51 来源:新华社
【字体:  

目录。

零,环境介绍。

一、安装Jenkins

1、安装和更换插件源。

 2、修改jenkins时区

sdkman安装༈可选)

1、常用的sdkman方法

2、常用的sdkman演示方法

2.1、查看可用的jdk。

2.2、下载jdk并切换版本

三、jenkins报错解决方案。

1、systemctl下载sdkman后启动失败

2、 其它可能的错误报告。

2.1、端口占用问题

2.2、用户名问题

2.3、版本兼容性问题

2.4、 防火墙问题

2.5、权限问题。


零,环境介绍。

Operating System。openEuler 22.03 (LTS-SP2)。
Kernel。Linux 5.10.0-153.12.0.92.oe2203sp2.x86_64。
ip address。192.168.240.11。
JDK version。jdk-17。
jenkins version。2.479.3-1.1.

安装前先调整防火墙:

jenkins官网提供的防火墙策略:

YOURPORT=8080PERM="--permanent"SERV="$PERM --service=jenkins"firewall-cmd $PERM --new-service=jenkinsfirewall-cmd $SERV --set-short="Jenkins ports"firewall-cmd $SERV --set-description="Jenkins port exceptions"firewall-cmd $SERV --add-port=$YOURPORT/tcpfirewall-cmd $PERM --add-service=jenkinsfirewall-cmd --zone=public --add-service=http --permanentfirewall-cmd --reload。

可以直接关掉防火墙:

sudo systemctl stop firewalldsudo systemctl disable firewalld。

一、安装Jenkins。

根据官网参考文件安装。

Jenkins安装参考文件。

sudo wget -O /etc/yum.repos.d/jenkins.repo \    https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.keysudo yum upgrade# Add required dependencies for the jenkins packagesudo yum install fontconfig java-17-openjdksudo yum install jenkinssudo systemctl daemon-reloadsudo systemctl start jenkinssudo systemctl enable jenkinssudo systemctl status jenkins。

如果安装顺利完成,执行systemctle status jenkins显示以下结果:

查看jenkins版本。

 。

 输入浏览器:http://192.168.240.11:8080。

 管理员密码在红色提示文件中,填写自己的密码。

cat /var/lib/jenkins/secrets/initialAdminPassword。

 安装推荐插件,如果太慢,也可以离线导入

等待安装完成。

1、安装和更换插件源。

依次点击Dashboard--> 系统管理--> 插件管理。

在底部填写国内jenkins插件源。

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。

 提交后,重启jenkins󿀌提示可更新的插件,更新这些插件󿀌最后显示。No updates available。。

 2、修改jenkins时区。

 依次点击Dashboard -->系统管理--> Script Console。

 填写以下内容󿀌显示底部操作结果。Result: Asia/Shanghai。

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')。

 。

sdkman安装༈可选)

官方下载sdk网站。

yum install -y tarcurl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk version。

查看sdk版本󿀌检查是否下载:

1、常用的sdkman方法。

官方使用sdkman指南。

  • 查看SKDMAN版本号: sdk version。
  • 列出可用的SDK列表: sdk list。
  • 安装特定的SDK: sdk install ,例如,安装Java 8: sdk install java 8.0.292.hs-adpt。
  • 切换SDK版本: sdk use ,例如,切换到Java 9: sdk use java 9.0.7-zulu。
  • 设置默认SDK版本: sdk default ,例如,设置Java 8.默认版本: sdk default java 8.0.292.hs-adpt。
  • 卸载SDK: sdk uninstall ,例如,卸载Java 9: sdk uninstall java 9.0.7-zulu。
  • 更新SDKMAN#xff1a; sdk upgrade。
  • 清除旧版SDK: sdk flush archives sdk flush temp。

以上是SDKMAN的基本使用命令,如果你想要更多的指令,可输入sdk help查看所有指令内容。

2、常用的sdkman演示方法。

2.1、查看可用的jdk。

sdk list java。

下载java 17.0.14-zulu。

下载前�先看Java二进制文件的路径。

which java。

 [root@openEuler-1 ~]# which java。
/usr/bin/java。

 查看这条路径的原因,因为安装了sdkman,切换jdk版本后,Java二进制文件的默认路径将改为。/root/.sdkman/candidates/java/current/bin/java。,稍后验证。

2.2、下载jdk并切换版本。

sdk install  java 17.0.14-zulu。

查看jdk版本。

java -version。

[root@openEuler-1 ~]# java -version。
openjdk version "17.0.14" 2025-01-21 LTS。
OpenJDK Runtime Environment Zulu17.56+15-CA (build 17.0.14+7-LTS)。
OpenJDK 64-Bit Server VM 17.56Zulu#43;15-CA (build 17.0.14+7-LTS, mixed mode, sharing)。

第一次下载会自动切换󿀌现在我的机器jdk版本是17.0.11变为17.0.14。

三、jenkins报错解决方案。

1、systemctl启动失败后,下载sdkman。

我们刚刚切换了jdk版本,尽管JDK版本为17.0.11变为17.0.14,但同样是jdk-17,不应该出错。

尝试重新启动Jenkins&xf00c;发现没有错。

但是,有时编译安装jdk后,然后下载sdkman可能会出现以下错误:

关键提示:Unit jenkins.service not found。

 这意味着jenkins服务单元没有找到,原因是systemctl启动时调用的jenkins.service文件/usr/lib/systemd/system目录,无法调用/etc/init.d下面的jenkins。因此,如果遇到服务模式,就不能启动jenkins󿀌Jenkins需要修改。.service适应:

vim /usr/lib/systemd/system/jenkins.service。

添加或删除注释并修改以下内容a;

Environment="JAVA_HOME=/root/.sdkman/candidates/java/current/bin/java"

 事实上,添加的内容是,为我们修改的java二进制文件路径sdkman。

重载重启jenkins发现错误解决方案:

systemctl daemon-reloadsystemctl start jenkinssystemctl status jenkins。

2、 其他可能的错误报告。

2.1、端口占用问题。


查看/etc/sysconfig/jenkinsJENKINS_PORT="8080”或者/usr/lib/systemd/system/jenkins.serviceEnvironment="JENKINS_PORT=8080"

grep -i jenkins_port= /usr/lib/systemd/system/jenkins.serviceps -aux | grep 8080。



vim /usr/lib/systemd/system/jenkins.service。

把/usr/lib/systemd/system/jenkins.serviceEnvironment="JENKINS_PORT=8080"改为您目前linux空闲端口,然后重启jenkins。

systemctl daemon-reloadsystemctl start jenkins.servicesystemctl stop jenkins.servicesystemctl status jenkins.service。

2.2、用户名问题。

 查看/etc/sysconfig/jenkins或//usr/lib/systemd/system/jenkins.serviceJENKINS_USER="root",如果不是root࿰,c;而是jenkins或其他󿼌将其改为root。或相反的操作。

vim /usr/lib/systemd/system/jenkins.serviceUser=rootGroup=rootsystemctl daemon-reloadsystemctl start jenkins.servicesystemctl stop jenkins.servicesystemctl status jenkins.service。

2.3、版本兼容性问题。

检查当前jdk版本是否对应jenkins版,如果不符合兼容性,则将jdk切换到相应的版本。如何选择jdk版本或jenkins版本参考jenkins官方文档:

Java Support Policy。

2.4、 防火墙问题。

文章开头已经说过,若8080端口࿰开始放行c;你后来又改成了其他端口,配置相应的防火墙策略。

2.5、权限问题。

使用jenkins用户和jenkins组的身份启动jenkins服务,由于jenkins用户权限低,无法阅读相关文件,可能会导致启动失败,我们可以为jenkins用户提权。

echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoerssudo chown -R jenkins:jenkins /var/lib/jenkinssudo chown jenkins:jenkins /usr/share/java/jenkins.war。

不同版本的路径可能不同,find可以用来找到。

[责任编辑:百度一下]
检察日报数字报 | 正义网 |
Copyrights©最高人民检察院 All Rights Reserved.