目录

1.jenkins.util.SystemProperties$Listener错误

升级jdk11可能遇到的坑

2.java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration

3.There were errors checking the update sites: UnknownHostException:updates.jenkins.io

方法3离线安装jenkins插件

4.tomcat无法启动,Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger


1.jenkins.util.SystemProperties$Listener错误

[root@master tomcat-8.5.98]# tail -10f logs/localhost.2024-02-06.log

rg.apache.catalina.core.StandardContext.listenerStart 配置应用程序监听器[jenkins.util.SystemProperties$Listener]错误
    java.lang.UnsupportedClassVersionError: jenkins/util/SystemProperties$Listener has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (无法载入的类 [jenkins.util.SystemProperties$Listener])

 错误消息指出jenkins.util.SystemProperties$Listener类是由更高版本的Java Runtime编译的(类文件版本55.0),而当前运行环境的Java Runtime只识别到版本52.0的类文件。

类文件版本55.0对应于Java 11,而版本52.0对应于Java 8。这意味着Jenkins WAR文件是为Java 11或更高版本编译的,而你的Tomcat服务器是在Java 8或更低版本的环境下运行的。

 PS:当前系统为centos7,tomcat版本为8.5.98,jenkins的版本为2.426.3LTS,java8

可能单看tomcat服务的catalina.out日志看不出具体的问题,需要结合localhost日志排查

 解决办法:升级java环境至11版本,即升级jdk11

jdk11下载地址(根据系统选择安装包)Java Downloads | Oracle

升级jdk11可能遇到的坑

启动tomcat时直接报错:

The JRE_HOME environment variable is not defined correctly
JRE_HOME=/home/jdk11/jre
This environment variable is needed to run this program

这个错误消息表明系统中 JRE_HOME 环境变量没有被正确地定义。JRE_HOME 是一个环境变量,它指向 Java Runtime Environment (JRE) 的安装目录。当尝试运行某些 Java 程序或工具时,它们可能需要这个环境变量来找到正确的 JRE 安装位置。

PS:默认的jdk11目录下没有jre文件

[root@master ~]# cd /usr/local/jdk11/
[root@master jdk11]# ll -h
总用量 24K
drwxr-xr-x  2 root  root  4.0K 2月   6 11:04 bin
drwxr-xr-x  4 root  root   112 2月   6 11:04 conf
drwxr-xr-x  3 root  root   132 2月   6 11:04 include
drwxr-xr-x  2 root  root  4.0K 2月   6 11:04 jmods
drwxr-xr-x 72 root  root  4.0K 2月   6 11:04 legal
drwxr-xr-x  6 root  root  4.0K 2月   6 11:04 lib
drwxr-xr-x  3 root  root    18 2月   6 11:04 man
-r--r--r--  1 10668 10668  160 12月 20 06:09 README.html
-rw-r--r--  1 10668 10668 1.3K 12月 20 06:09 release
 

解决:进入jdk11目录下,执行如下命令:

./bin/jlink --module-path jmods --add-modules java.desktop --output jre

[root@master jdk11]# ll -h
total 24K
drwxr-xr-x  2 root  root  4.0K Feb  6 14:23 bin
drwxr-xr-x  4 root  root   112 Feb  6 14:23 conf
drwxr-xr-x  3 root  root   132 Feb  6 14:23 include
drwxr-xr-x  2 root  root  4.0K Feb  6 14:23 jmods

drwxr-xr-x  8 root  root    94 Feb  6 15:08 jre
drwxr-xr-x 72 root  root  4.0K Feb  6 14:23 legal
drwxr-xr-x  6 root  root  4.0K Feb  6 14:23 lib
drwxr-xr-x  3 root  root    18 Feb  6 14:23 man
-r--r--r--  1 10668 10668  160 Dec 20 06:09 README.html
-rw-r--r--  1 10668 10668 1.3K Dec 20 06:09 release

 

之后可在/etc/profile文件添加环境变量(根据实际情况添加):

export JAVA_HOME=/path/jdk11

export JRE_HOME=/path/jdk11/jre # 替换为实际的JRE路径

export PATH=$JRE_HOME/bin:$PATH

2.java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration

解决办法:

1.可以连接互联网的情况下

yum install -y fontconfig,再重新启动tomcat

2.无法连接互联网

找一台可以连接互联网的机器,仅下载fontconfig的rpm包及其依赖包

yumdownloader --resolve --destdir=/root/java/  fontconfig dejavu-sans-fonts fontpackages-filesystem libexpat.so.1 libfreetype.so.6 libuuid.so.1

下载好后,打包成tar包,上传到jenkins服务器上并解压安装(可能环境不同,所需的依赖包也不一致,根据提示安装即可),再重新启动tomcat后,可正常访问登入Jenkins

[root@maste java]# rz
[root@maste java]# rpm -ivh --force ./*.rpm

Preparing...                          ################################# [100%]
Updating / installing...
   1:fontpackages-filesystem-1.44-8.el################################# [ 10%]
   2:dejavu-fonts-common-2.33-6.el7   ################################# [ 20%]
   3:dejavu-sans-fonts-2.33-6.el7     ################################# [ 30%]
   4:libuuid-2.23.2-65.el7_9.1        ################################# [ 40%]
   5:libpng-2:1.5.13-8.el7            ################################# [ 50%]
   6:expat-2.1.0-15.el7_9             ################################# [ 60%]
   7:bzip2-libs-1.0.6-13.el7          ################################# [ 70%]
   8:freetype-2.8-14.el7_9.1          ################################# [ 80%]
   9:fontconfig-2.13.0-4.3.el7        ################################# [ 90%]
  10:fontconfig-2.13.0-4.3.el7        ################################# [100%]

3.There were errors checking the update sites: UnknownHostException:updates.jenkins.io

出现 "There were errors checking the update sites: UnknownHostException: updates.jenkins.io" 错误通常意味着 Jenkins 无法连接到 updates.jenkins.io,这可能是由于网络问题、DNS 解析问题、代理设置不正确、或者 updates.jenkins.io 暂时不可访问。

可能是你本地的网络环境无法访问外网

解决方法:

1.检查网络、DNS

2.更换Jenkins 更新站点配置,默认的jenkins更新站点是国外的,可能无法访问,可更换国内的更新站点,如:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

登入jenkins,点击 管理jenkins===》插件==》高级设置,替换升级站点的URL提交

方法3离线安装jenkins插件

Jenkins插件离线下载地址:Jenkins Plugins

1.在搜索框输入需要下载的插件

2.选择对应的插件

3.点击‘releases’,找到对应版本下载

4.登入jenkins,Manage Jenkins(管理jenkins)-->System Configuration(系统管理)-->Plugins(插件)-->Advanced settings(高级设置)-->部署插件--》选择文件,点击部署--》重启jenkins;到此插件安装成功(不成功可能是插件的依赖插件没安装或者版本问题,根据报错解决即可)

 

 

4.tomcat无法启动,Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger

 现环境:jdk11、tomcat-8.5.98、jenknis-2.426.3LTS

原委:升级jenkins版本到2.426.3LTS(需要jdk11),默认的jdk11目录下没有jre文件

 操作:

1.手动生成jre文件

从JDK9开始, 引入了模块化, 可以根据需要生成一个runtime, 不再单独提供jre, 需要什么模块, 自己生成就好了, 可以自己定制jre的

进入jdk11目录下,执行如下命令:

./bin/jlink --module-path jmods --add-modules java.desktop --output jre

2.修改环境变量,vim /etc/profile

原环境变量:

export JAVA_HOME=/home/jdk8
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH  
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin  
export PATH=$PATH:${JAVA_PATH}

现环境变量:

export JAVA_HOME=/home/jdk11 
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH  
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin  
export PATH=$PATH:${JAVA_PATH}

 

启动tomcat:

表面上启动成功

[root@jenkins ~]# bash /home/apache-tomcat-8.5.98/bin/startup.sh 
Using CATALINA_BASE:   /home/apache-tomcat-8.5.98
Using CATALINA_HOME:   /home/apache-tomcat-8.5.98
Using CATALINA_TMPDIR: /home/apache-tomcat-8.5.98/temp
Using JRE_HOME:        /home/jdk11/jre
Using CLASSPATH:       /home/apache-tomcat-8.5.98/bin/bootstrap.jar:/home/apache-tomcat-8.5.98/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

实际上:日志报错了

# tail -10f /home/apache-tomcat-8.5.98/logs/catalina.out 

NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
WARNING: Unknown module: java.rmi specified to --add-opens
Exception in thread "main" java.lang.NoClassDefFoundError: java/util/logging/Logger
    at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:61)
    at org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:181)
    at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:130)
    at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:153)
    at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:208)
    at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52)

Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 6 more

解决方法:

1.给tomcat指定jre路径,修改setclasspath文件,在代码最前添加

# vim /home/apache-tomcat-8.5.98/bin/setclasspath.sh 

JAVA_HOME='/home/jdk11'
JRE_HOME='/home/jdk11'

重新启动tomcat,启动成功,可以正常访问登入jenkins页面(亲测成功)

2.修改环境变量,给jre指定jdk路径即可

原环境变量:

export JAVA_HOME=/home/jdk11 
export JRE_HOME=${JAVA_HOME}
/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH  
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin  
export PATH=$PATH:${JAVA_PATH}

现环境变量:

export JAVA_HOME=/home/jdk11 
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH  
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin  
export PATH=$PATH:${JAVA_PATH}

重新启动tomcat,启动成功,可以正常访问登入jenkins页面(亲测成功)

 

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐