MacOS系统使用Java 10启动Jenkins失败问题求助
java.lang.UnsupportedClassVersionError: 54.0错误 嗨,咱们来一步步拆解这个问题:首先,54.0这个版本号对应的是Java 10的类文件版本。这个错误的核心意思是——你用来运行Jenkins的JVM版本,跟不上编译Jenkins主类(Main)所需要的JVM版本。不过你说当前环境是Java 10.0.1,这看起来有点矛盾,咱们来逐个排查:
1. 先确认实际跑Jenkins的JVM到底是哪个
很多时候系统里会装多个Java版本,虽然你输java -version显示的是10.0.1,但Jenkins启动时说不定偷偷调用了别的版本。你可以在终端跑这两个命令看看:
which java echo $JAVA_HOME
如果输出的路径指向的是Java 8(比如/Library/Java/JavaVirtualMachines/jdk1.8.0_xxx.jdk/Contents/Home),那问题就找到了——Java 8最多只能识别类文件版本52.0(对应Java 8),而Jenkins的Main类是用Java 10(版本54.0)编译的,自然就报错了。
2. 搞清楚Jenkins和Java版本的适配关系
Jenkins 2.107.2这个版本,官方其实是推荐用Java 8的,对Java 10的支持非常有限——毕竟Java 10是个过渡版本,Jenkins在2.150.1之后才开始对Java 10有比较好的支持,更早的版本很多核心代码和插件都没适配。
3. 具体解决办法,选一个适合你的
方案一:切回Java 8运行Jenkins
如果你暂时不想升级Jenkins,这是最省心的办法:- 要是还没装Java 8,先装一个;
- 在终端临时切换Java环境(把下面的路径换成你自己的Java 8安装路径):
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH - 再跑
java -jar jenkins.war试试,应该就能正常启动了。
方案二:升级Jenkins到支持Java 10的版本
如果你想继续用Java 10,那建议把Jenkins升级到2.150.1或者更高版本——这个版本开始正式对Java 10提供支持。下载对应版本的war包,替换掉原来的再启动就行。
4. 最后再检查一下war包
如果上面的方法都不管用,说不定是你的jenkins.war下载的时候损坏了,重新下载一个对应版本的war包再试试。
内容的提问来源于stack exchange,提问作者L Y E S - C H I O U K H

