[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~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM