最近公司产品要加入帮助功能,当触发热键F1时打开浏览器,显示帮助文档页面,触发的过程以及如何调用浏览器不用多说了,当时遇到的问题是:帮助的文档HTML是放在服务端发布的,我们都知道要打开一个浏览器页面需要知道其路径,http://IP:port/...
如何获取应用程序发布路径呢?先来看一个jnlp文件。
<?xml version="1.0" encodoing="utf-8"?> <jnlp spec="1.0+" codebase="http://IP:port/..." href="..."> ... </jnlp>
省略部分不是是重点,关键是在codebase那里是一个服务端资源路径,可以利用jnlp相关API(注意,在一般的JDK API文档中找不到API描述,应该从javaws.jar包中获取)解析codebase:
URL url = null;
try {
BasicService basicService = (BasicService)ServiceManager.lookup ("javax.jnlp.BasicService");
if(basicService!=null){
url = basicService.getCodeBase();
}
} catch (UnavailableServiceException e) {
e.printStackTrace();
}
这个URL就是获得的发布地址,就可以根据各自需要解析域名或是IP端口了