You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何强制Jenkins 2.107.2启动代理时使用Java 1.8.0?

如何强制Jenkins SSH代理使用Java 1.8启动

看到你遇到的Jenkins代理启动报错,确实是Java版本不兼容的典型问题——虽然已经装了Java 1.8,但Jenkins SSH代理还是默认调用了系统的Java 1.7。下面给你几个实用的解决办法,亲测有效:

[05/02/18 10:17:59] [SSH] Starting sftp client. [05/02/18 10:17:59] [SSH] Copying latest slave.jar... [05/02/18 10:17:5...

方法1:在Jenkins节点配置中直接指定JDK路径

这是最推荐的方式,不需要修改代理服务器的全局设置:

  • 登录Jenkins后台,进入 Manage Jenkins > Manage Nodes and Clouds
  • 找到目标代理节点,点击右侧的 Configure
  • 滚动到 Node Properties 区域,勾选 Tool Locations
  • 点击 Add,在下拉菜单选择 JDK,然后在 Home 栏填入你的Java 1.8绝对路径,比如:
    /usr/lib/jvm/java-1.8.0-openjdk-amd64
    
    (不确定路径的话,可以在代理服务器上执行 ls /usr/lib/jvm 查看具体目录)
  • 保存配置后,重启该代理节点,Jenkins就会强制用指定的Java 1.8启动代理了

方法2:修改代理服务器的SSH登录环境变量

如果不想在Jenkins里配置,也可以直接调整代理服务器的用户环境:

  • 登录到代理服务器,编辑当前SSH用户的 ~/.bashrc~/.profile 文件(根据你使用的shell选择)
  • 添加以下两行配置:
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    
  • 执行 source ~/.bashrc(或对应的配置文件)让修改即时生效
  • 回到Jenkins重启代理节点,SSH登录后环境变量会优先加载Java 1.8

方法3:自定义代理启动命令

如果前两种方法都没生效,可以直接指定启动代理的Java命令:

  • 进入代理节点的 Configure 页面,找到 Launch method 下的 Launch agent via SSH
  • 点击 Advanced 展开更多设置
  • Prefix Start Agent Command 栏填入Java 1.8的完整执行路径,比如:
    /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java
    
  • 保存后重启代理,Jenkins会直接用这个指定的Java命令运行slave.jar

提醒一下:操作前可以在代理服务器上手动执行 [你的Java1.8路径]/bin/java -version 确认路径有效,避免填错导致启动失败。

内容的提问来源于stack exchange,提问作者Jeremyapple

火山引擎 最新活动