升级Jenkins2.357适配Java11启动报IllegalArgumentException求助
问题现象
升级Jenkins至2.357版本、配套将Java从1.8升级到11后,Jenkins服务启动失败,执行journalctl -xe查看日志核心报错为:
Exception in thread "main" java.lang.IllegalArgumentException: Expecting ----prefix=VALUE but found no value
当前环境Java版本为OpenJDK 11.0.15。
根因定位
该报错是Jenkins内置的Winstone容器解析启动参数时触发的校验失败,问题和Java版本升级无关,核心原因是启动参数中prefix配置格式错误:
- 参数前缀多写了横杠:正确的访问前缀参数为双横杠开头的
--prefix,当前配置中误写为四个横杠的----prefix - 参数未配置有效值:即使参数名写对,只要
--prefix后没有填写对应的路径值(比如留空、只写--prefix=不跟路径),都会触发该报错。
排查路径
按优先级依次检查两处配置:
- 第一优先级检查Jenkins环境配置文件:
- CentOS/RHEL/Rocky系发行版路径:
/etc/sysconfig/jenkins - Debian/Ubuntu系发行版路径:
/etc/default/jenkins
找到文件中JENKINS_ARGS配置项,逐字符检查和prefix相关的配置片段,确认是否存在多横杠、值为空的问题。
- CentOS/RHEL/Rocky系发行版路径:
- 第二优先级检查systemd服务配置:
配置文件通常在/usr/lib/systemd/system/jenkins.service或/etc/systemd/system/jenkins.service路径,找到ExecStart启动命令行,检查其中传入的prefix参数格式。
修复方案
根据实际使用场景选择对应修复方式:
- 无需配置二级路径访问(直接通过
http://服务器IP:端口/访问Jenkins):直接删除配置中所有和prefix相关的错误参数片段即可。 - 需要配置二级路径访问(比如通过
http://服务器IP:端口/jenkins/访问Jenkins):将prefix参数修正为标准格式--prefix=/jenkins,注意双横杠开头,等号后直接填写目标路径,不得留空。
配置修改完成后依次执行以下命令重载配置、重启服务:
systemctl daemon-reload systemctl restart jenkins
重启后执行systemctl status jenkins确认服务处于active运行状态即修复完成。
内容的提问来源于stack exchange,提问作者Udara Jayawardana
相关产品推荐
相关产品推荐

