JavaGUI应用程序打包及数字签名
JavaGUI应用程序部署 JavaGUI程序发布分类:
a、Applet:可以嵌入到浏览器中,通过网页的方式展示给用户
b、application :有两种发布方式 :打包成jar包通过bat的方式运行,或者通过第三方软件打成exe; 通过Java Web Start的方式发布到服务器端,通过JNLP运行 用applet或者jws的方式发布,大部分都需要数字签名,签名不是必须的,如果程序只是单纯的绘图,显示,只要不访问网络资源也不访问本地文件,是不用签名的,但是如果要访问本地或网上资源就必须签名, 比如读取本地文件或者访问数据库,这是由java的沙箱机制决定的,即jvm内部有一组安全检查规则,要通过检查之后才能访问特定资源。
如果要突破这个规则,可以有两个方法:
一、 修改jre权限
文件如下
java.policy为grant {
permission java.security.AllPermission;
};
一般权限文件的目录如下C:/Program Files/Java/jre6/lib/security,但修改每个客户端权限文件,很麻烦。
二、签名
签名就是告诉用户,这个程序是谁发布的,是不是能信任,如果客户确定,这个applet或者jws就可以访问外部资源了。
(1)打包,将多个class文件及包,进行打包
例如:所有class文件及包都在com目录下
1、进入相应磁盘
2、进入到com所在文件夹
3、执行命令:jar -cvf manage.jar .
(2)使用keytool工具生成密匙库
1.keytool工具位于${java_home}/bin目录下;
2.在DOS窗口中执行命令:keytool -genkey -keystore mytest.store -alias mbq
注意:mytest.store 是你的密匙库的名称,可以随意修改,后缀请不要修改!
如果需要可以添加参数DOS命令
keytool -genkey -keystore mytest.store -alias mbq -validity 3650
-validity 3650 表示的是有效期是3650天,默认情况是六个月有效期。
mbq 为别名,这个也可以改成自己的名称
3.执行上述命令后,DOS窗口中会提示你输入keystore的密码、你的姓名、组织单位等等信息。这里要注意的是输入密码请记住,后面要用到的。在最后,我们输入y确认信息。然后再直接回车设置mbq的主密码和store密码一致即可!
(3)使用keytool工具导出签名时用到的证书
1.在DOS窗口中执行命令:keytool -export -keystore mytest.store -alias mbq -file mbq.cert
注意:mytest.store 就是第二步生成的密匙库名称
mbq 也是在第二步中我们指定的别名
mbq.cert 为我们生成的证书的名称,可以自己修改名称,注意后缀不要改
2.命令执行成功,我们会在当前目录下找到一个mbq.cert文件,这个就是我们刚才生成的证书。
(4)使用jarsigner工具签名jar压缩文档
1.jarsigner工具位于${java_home}/bin目录下;
2.在当前DOS窗口中执行命令:jarsigner -keystore mytest.store mytest.jar mbq
注意:mytest.store 就是我们在第二步中生成的密匙库名称
mytest.jar 就是我们这第一步压缩的jar文档
mbq 是提供者的名称,我们这里设置为我们的别名
修改客户端的程序是需要重新打包和签名。