解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机


测试环境

  

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

 

结果如下,提示“无法启动该应用程序”,点击详情后提示如下,无法加载指定的文件

 Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_java

 

 

解决过程

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

 

结果如下

Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_02

 

如上,通过提示,可看到安装jdk中自带jar版本过低(当时安装java jdk 1.6)

 

3、卸载老版本java,jdk,并安装1.8.0_91版本的jdk,重试

结果如下,提示“应用程序已被Java安全阻止”

Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_03

 

 

 

怎么办?见第4点

 

4、解决步骤3中的问题

解决方法:如下,打开“控制面板  ->  程序  -> Java”

Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_04

 

 

 

打开“安全”选项卡,点击“编辑站点列表”,打开弹窗中添加例外站点,如下

 Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_java_05

 

  Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_06



注意:这里站点必须包含host及对应的端口,且遵守上述形式

 

5、再次运行javaws程序

Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_07

 

 

 

结果,提示如下,勾选“我接受风险……”复选框,点击“运行”,结果成功了

 Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_08

 

 

6、其它可能会遇到的问题

6.1 防火墙未开放对应端口,会造成无法连接

 

6.2 运行jnlp文件时,请求的地址和jenkins的访问地址不一样

Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_java_09

 

 

 

解决方法:Jenkins -> ”系统管理” -> “系统设置”,如下,找到“Jenkins Location”->  “Jenkins URL”,把其中的URL地址改成jenkins的访问网址

Jenkins 解决Jenkins下java无法运行slave-agent jnlp程序连接Windows Slave主机_Windows Slave_10

 

 

 备注:

1)这个问题是笔者使用虚拟机,更改jenkins访问地址和端口后遇到的

2)如果这样改后还不行,用notepad等工具打开下载的jnlp文件,编辑替换对应ip和端口。