解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机
by:授客 QQ:1033553122
测试环境
java下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html
Jenkins war 1.642
Win7 64位
问题描述
cmd窗口下运行程序javaws程序,如下:
javaws http://192.168.1.10:8082/jenkins/computer/192.168.9.98/slave-agent.jnlp
结果如下,提示“无法启动该应用程序”,点击详情后提示如下,无法加载指定的文件
解决过程
1、直接在浏览器中访问以下网址
http://192.168.1.10:8082/jenkins/computer/192.168.9.98/slave-agent.jnlp
结果,提示没有权限,找相关人员开放权限后重试,发现可以下载slave-agent.jnlp
2、试着不通过url方式,直接运行下载到本地的salve-agent.jnlp,
C:\Users\yunnex>javaws F:\Download\slave-agent.jnlp
结果如下
如上,通过提示,可看到安装jdk中自带jar版本过低(当时安装java jdk 1.6)
3、卸载老版本java,jdk,并安装1.8.0_91版本的jdk,重试
结果如下,提示“应用程序已被Java安全阻止”
怎么办?见第4点
4、解决步骤3中的问题
解决方法:如下,打开“控制面板 -> 程序 -> Java”
打开“安全”选项卡,点击“编辑站点列表”,打开弹窗中添加例外站点,如下
注意:这里站点必须包含host及对应的端口,且遵守上述形式
5、再次运行javaws程序
结果,提示如下,勾选“我接受风险……”复选框,点击“运行”,结果成功了
6、其它可能会遇到的问题
6.1 防火墙未开放对应端口,会造成无法连接
6.2 运行jnlp文件时,请求的地址和jenkins的访问地址不一样
解决方法:Jenkins -> ”系统管理” -> “系统设置”,如下,找到“Jenkins Location” -> “Jenkins URL”,把其中的URL地址改成jenkins的访问网址
备注:
1)这个问题是笔者使用虚拟机,更改jenkins访问地址和端口后遇到的
2) 如果这样改后还不行,用notepad等工具打开下载的jnlp文件,编辑替换对应ip和端口。
参考连接:
http://java.com/zh_CN/download/help/jcp_security.xml