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

时间:2022-10-09 15:31:47

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

如需转载,请注明出处。

文章链接: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

[Jenkins]JDK版本过高导致的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以上版本,截图如下:

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

所以猜测替换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~~

[Jenkins]JDK版本过高导致的java.io.IOException: Remote call on xxxx failed的更多相关文章

  1. jenkins 升级jdk到1.8.0 报java.io.IOException:Unable to read /var/lib/jenkins/config.xml

    今天手动下载安装了jdk1.8.0, 并修改了配置文件,当前默认使用该版本的jdk.但是报出一下错误: 问题查到: https://issues.jenkins-ci.org/browse/JENKI ...

  2. hadoop集群启动报错: java.io.IOException: Incompatible clusterIDs

    java.io.IOException: Incompatible clusterIDs in /export/hadoop-2.7.5/hadoopDatas/datanodeDatas2: nam ...

  3. JDK版本过高,导致Eclipse报错

    1.JDK版本如果比较高,而使用的eclipse版本比较低,导致在eclispe中不能识别而报错.   2.点击Attach Source添加rt.jar后,又出现如下错误 3.这样的错误就是由于ec ...

  4. Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported

    Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported 如果原有项目用的为JDK1.7,而自己的是低版本JDK,比如1. ...

  5. 高并发连接导致打开文件过多:java.io.IOException: Too many open files 解决方法

    用 CentOS 做 API 接口服务器供其他终端调用时,并发量高会报错:java.io.IOException: Too many open files. 其原因是在 Linux 下默认的Socke ...

  6. Tomcat9.0.13 Bug引发的java.io.IOException:(打开的文件过多 Too many open files)导致服务假死

    问题背景: 笔者所在的项目组最近把生产环境Tomcat迁移到Linux,算是顺利运行了一段时间,最近一个低概率密度的(too many open files)问题导致服务假死并停止响应客户端客户端请求 ...

  7. hive使用python脚本导致java.io.IOException: Broken pipe异常退出

    反垃圾rd那边有一个hql,在执行过程中出现错误退出,报java.io.IOException: Broken pipe异常,hql中使用到了python脚本,hql和python脚本最近没有人改过, ...

  8. java.io.ioexception failed to mkdirs jenkins xcode || jenkins 无法创建新文件

    =========================================================== FATAL: Failed to mkdirs: /Users/chenqing ...

  9. Jenkins报错Caused: java.io.IOException: Cannot run program "sh" (in directory "D:\Jenkins\Jenkins_home\workspace\jmeter_test"): CreateProcess error=2, 系统找不到指定的文件。

    想在本地执行我的python文件,我本地搭建了一个Jenkins,使用了execute shell来运行我的脚本,发现报错 [jmeter_test] $ sh -xe D:\tomcat\apach ...

随机推荐

  1. ADO.Net(四)——扩展属性和配置文件应用

    一.扩展属性 处理:有外键关系时将代号化信息处理成原始文字,让用户可看懂的(粗略解释) 利用扩展属性 如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称 需要在Info类里面扩展 ...

  2. Node之pm2

    最近在项目中使用了Node,在程序部署的时候直接使用命令:node app.js ,这样我们的程序就可以host起来了,但是只要dos窗口关掉之后node就关闭了,这使得我们很不方便,于是乎发现了pm ...

  3. 关于opacity透明度子元素继承现象的若干研究以及hack方法

    [感想]信息时代的信息是有时效性的,今天是确确实实感受到了.互联网资料虽然丰富,但是质量不一,还有大量的跟风雷同,很多人都是随手拷贝过来,根本没有实践.以前端为例,这两年浏览器的迅猛发展,造成很多原有 ...

  4. MySQL学习笔记01-MYSQL安装

    一 MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司. MySQL 最流行的关系型数据库管理系统. MySQL分为企业版和社区版. ...

  5. POJ 2135 Farm Tour [最小费用最大流]

    题意: 有n个点和m条边,让你从1出发到n再从n回到1,不要求所有点都要经过,但是每条边只能走一次.边是无向边. 问最短的行走距离多少. 一开始看这题还没搞费用流,后来搞了搞再回来看,想了想建图不是很 ...

  6. docker 镜像中包含数据库环境和运行环境

    需求: 一个镜像中要包含数据库环境和运行环境 Apache 环境 + mariadb 已经在拉取了Apache的运行环境 - 拉取代码 git https://github.com/timhaak/d ...

  7. vue2.0路由进阶

    一.路由的模式 第一种用history方式实现,HTML5使用window.history.pushState()实现路由的切换而不刷新页面. 第二种使用hash值的方式来实现. vue2.0两种都可 ...

  8. Java多线程的调度策略

    在Java多线程环境中,为保证所有线程的执行能按照一定的规则执行,JVM实现了一个线程调度器,它定义了线程调度的策略,对于CPU运算的分配都进行了规定,按照这些特定的机制为多个线程分配CPU的使用权. ...

  9. 【Unity Shaders】Reflecting Your World —— Unity3D中的遮罩反射(Masking Reflections)

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  10. C&num;多条件查出来的多个DataSet,然后循环将数据整合

    private List<string> barList;        public List<string> BarList        {            get ...