为JAR签名需要两个工具:你要用keytool来创建一个密匙,然后用JARSigner来用此密匙为JAR签名。可以用同一个密匙来为一个公司或一个开发者的所有JAR签名
为什么JAR要被签名?当用户启动一个Java Network Launching Protocol (JNLP,Java网络加载协议)文件或使用一个applet时,这个JNLP或applet请求系统提供超过一般的访问。例如,它可能有一个“文件|打开”菜单项用来装载一个.csv文件。进行这样的请求,就需要签名的JAR。如果它是匿名的,系统会询问用户是否打算信任JAR的签署者。
下面是一个使用keytool的例子。在实际应用中,请确保你用了可靠的的keypass和keystore的密码。后面为JAR签名的时候你会需要它们。
> keytool -genkey -alias csv -keypass invasion:earth
输入keystore密码: harry:Harrison
您的名字与姓氏是什么?
[Unknown]: bayard
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]: generationjava.com
您所在的城市或区域名称是什么?
[Unknown]: Springfield
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]: US
<CN=bayard, OU=Unknown, O=generationjava.com, L=Springfield, ST=Unknown,
C=US>正确吗?
[否]: 是
(译者注:原文为英文,此处为译者在中文环境下运行同一命令得到的控制台输出)