配置Jenkins Controller与EC2代理节点时遇JNI错误求助
解决Jenkins代理节点JNI错误(UnsupportedClassVersionError)
问题核心
代理节点使用的OpenJDK 1.8(class文件版本52.0)无法运行用Java 11(class文件版本55.0)编译的hudson/remoting/Launcher类,导致版本不兼容错误。
方案一:升级代理节点Java版本到11(推荐)
- 在Maven代理服务器上安装OpenJDK 11
- Amazon Linux 2系统执行:
sudo amazon-linux-extras install java-openjdk11 -y - Ubuntu/Debian系统执行:
sudo apt update && sudo apt install openjdk-11-jdk -y
- Amazon Linux 2系统执行:
- 设置默认Java版本为11
执行命令后选择对应Java 11的选项编号:sudo alternatives --config java - 验证版本
执行java -version,确认输出为OpenJDK 11.x.x - 重新启动Jenkins代理节点
在Jenkins控制器的节点管理页面,找到该代理节点并点击「启动代理」
方案二:降级Jenkins Remoting版本适配Java 8(临时过渡)
如果暂时无法升级Java,可降低Remoting版本:
- 登录Jenkins控制器,进入「Manage Jenkins」→「Global Tool Configuration」
- 找到「Remoting」板块,点击「Add Remoting Installer」
- 选择「Extract .zip/.tar.gz」,指定兼容Java 8的版本(如4.13.3)
- 保存配置后,重新配置代理节点使用该旧版本Remoting启动
注意事项
- Jenkins 2.357及以上版本要求控制器和代理均使用Java 11+,长期来看优先选择方案一,避免后续兼容性问题
- 升级Java后,检查
JAVA_HOME环境变量是否指向Java 11路径,确保Maven适配新Java版本
内容的提问来源于stack exchange,提问作者jakesh gowda
相关产品推荐
相关产品推荐

