JNLP(Java Network Launching Protocol )是java提供的一种可以通过浏览器直接执行java应用程序的途径,它使你可以直接通过一个网页上的url连接打开一个java应用程序,JNLP也支持从桌面启动。关于JNLP的结束可以看看百度百科。
这里介绍一下JNLP应用发布的第一步:jar包签名。
一. 生成证书。
使用工具:keytool,关于keytool工具的时候可以参考百度百科对keytool的介绍。
C:\Users\zhuqing>keytool -genkey -keystore you.keystore -alias youApp
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: zhu
您的组织单位名称是什么?
[Unknown]: zhu
您的组织名称是什么?
[Unknown]: zhu
您所在的城市或区域名称是什么?
[Unknown]: zhu
您所在的省/市/自治区名称是什么?
[Unknown]: zhu
该单位的双字母国家/地区代码是什么?
[Unknown]: zhu
CN=zhu, OU=zhu, O=zhu, L=zhu, ST=zhu, C=zhu是否正确?
[否]: y
输入 的密钥口令
(如果和密钥库口令相同, 按回车):
再次输入新口令:
you.keystore :要生成的证书的名称。
youApp:证书的别名。
证书的默认日期是半年,想要更长可以使用-validity 356。表示证书的有效期是一年。用法:
keytool -genkey -keystore you.keystore -alias youApp -validity 365
二. 对jar包签名。
使用工具:jarsigner。
D:\build\libs>jars
igner -keystore you.keystore you.jar youApp
输入密钥库的密码短语:
jar 已签名。
警告:
签名者证书将在六个月内过期。
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期
日期 (2016-09-17) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
you.keystore:已生成的证书。
youApp:已生成证书的别名。
但是大项目来说往往会有上百个jar包。按照上面的方式打包太浪费时间。我们使用批处理的方式签名。
jarsinger.bat:
//按行遍历signerConfig.txt,并执行。
for /f "tokens=*" %%a in (signerConfig.txt) do %%a
signerConfig.txt:
jarsigner -storepass password -keystoreyou.keystoreyou.jaryouApp
jarsigner -storepasspassword-keystoreyou.keystoreyou2.jaryouApp
jarsigner -storepasspassword-keystoreyou.keystore lib\you-1.1.jaryouApp
jarsigner -storepasspassword-keystoreyou.keystore lib\you-1.8.2.jaryouApp
jarsigner -storepasspassword-keystoreyou.keystore lib\you-1.8.2.jaryouApp
jarsigner -storepasspassword-keystoreyou.keystore lib\you-2.7.7.jaryouApp
.....
password:创建证书you.keystore时,设置的密码。