• [Jenkins]JDK版本过高导致的java.io.IOException: Remote call on xxxx failed


    ------------------------------------------------------

    如需转载,请注明出处。

    文章链接:https://www.cnblogs.com/dzblog/p/9946486.html

    ------------------------------------------------------

    更新

    2018-11-28:文章写于11月12日,今日查询官网发现,在Jenkins最新的weekly版本上已经支持了JDK11,个人未测试,若有需要请更新2.152以后的版本。

    changelog信息:https://jenkins.io/changelog/

    环境

    Jenkins: 2.7

    Slave: Mac OS

    场景

    发现Jenkin构建能够成功,不过在最后一步总会提示java.io.IOException: Remote call on xxxx failed

    原因分析

    遇到这种问题毫无头绪,不过猜测可能是master和slave机器连接这里的问题,查询官网发现https://issues.jenkins-ci.org/browse/JENKINS-46523,应该是JDK版本的原因导致。

    查询构建机的java版本,发现是JDK11。

    ➜  Home java --version
    java 11.0.1 2018-10-16 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

    另外发现官网有个Ticket:JENKINS-40689 说目前不支持JDK9以上版本,截图如下:

    所以猜测替换JDK版本到JDK8就能解决此问题。

    着手解决

    查看机器安装的JDK版本

    发现有JDK11和JDK8两个版本,所以只需要切换到JDK8就可以了

    ➜  Home pkgutil --pkgs | grep jdk 
    com.oracle.jdk-11.0.1
    com.oracle.jdk8u101

    切换JDK版本

    切换到Jenkins支持的JDK8。为了方便以后使用,改成灵活修改JDK的方式,编辑~/.bash_profile

    # 设置JDK8
    export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`
    # 设置JDK11
    export JAVA_11_HOME=`/usr/libexec/java_home -v 11.0`
    
    # 设置默认JDK为8,重启电脑会自动选择
    export JAVA_HOME=$JAVA_8_HOME
    
    #能够方便的切换JDK
    alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
    alias jdk11="export JAVA_HOME=$JAVA_11_HOME"

    测试

    # 输入jdk11
    ➜  Home jdk11
    # 查看java版本
    ➜  Home java -version
    java version "11.0.1" 2018-10-16 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
    # 输入jdk8
    ➜  Home jdk8
    # 查看java版本
    ➜  Home java -version
    java version "1.8.0_101"
    Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

    再次启动Jenkins

    nohup java -jar slave.jar -jnlpUrl http://jenkins-url.com/computer/slave-macpro/slave-agent.jnlp -secret 63f9d5f0f1b5df887cbe72225d912a7ba253ef727c85aa143e3200e2ea54f278 >jenkinsslave.log &

    再次构建,成功!

    cheers~~

  • 相关阅读:
    LeetCode刷题--只出现一次的数
    Java进阶--多线程
    .NETCore :正则表达式
    .net core多线程:Thread
    .NETCore : Linq简介
    .NET Core:List,ArrayList和Dictionary
    .NET Core 装箱与拆箱
    .NET Core 泛型、逆变与协变
    .NET Core 类的生命周期
    .NET Core 类的多态与继承
  • 原文地址:https://www.cnblogs.com/dzblog/p/9946486.html
Copyright © 2020-2023  润新知