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 是提供者的名称,我们这里设置为我们的别名 
修改客户端的程序是需要重新打包和签名。 

JavaGUI应用程序打包及数字签名的更多相关文章

  1. 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程

    最近由于项目部署时需要更灵活的控制程序安装的流程以及自定义安装行为,特意研究了一下VS程序打包,把解决办法和大家分享一下. 以VS2010为例: 这是一个已经设置好最基本的Visual Studio ...

  2. VS2012程序打包部署详解

    VS2012没有自带打包工具,所以要先下载并安装一个打包工具.我采用微软提供的打包工具:  InstallShield2015LimitedEdition.下载地址:https://msdn.micr ...

  3. 他山之石——vs2013 安装与部署及程序打包

    C#打包需要这个:InstallShield 2013 Limited Edition for Visual Studio  .下载地址: InstallShield 2013 Limited Edi ...

  4. c#程序打包大全

    c#程序打包现在分为两种,一种是VS自带的打包方式,还有一种是第三方的打包方式,在VS2013里面是没有自带打包安装部署的,只有第三方的创建. 第三方打包方式很简单,百度Installshield下载 ...

  5. SNF开发平台WinForm之十一-程序打包-SNF快速开发平台3.3-Spring.Net.Framework

    原来我们用的是微软自带的打包工具去打包,但感觉好像也是第三方做的打包并且很是麻烦,还有时不成功报错.那综合考虑就找一个简单实用的打包工具吧,就找到了NSIS这个.具体打包步骤如下: 1.安装NSIS ...

  6. Android 程序打包和安装过程

    APP程序打包与安装的流程: APP的安装过程:

  7. 【转】VS2012程序打包部署详解

    上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结.程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因 ...

  8. 将eclipse的应用程序打包成.exe

    转自:http://blog.163.com/loveshijie_1991/blog/static/1760553112012102573437156/ 参考:http://blog.csdn.ne ...

  9. 用命令行将Java程序打包为jar文件

    如何把写好的Java程序打包为jar文件呢?有两种方式可以选择 1.命令行的方式: 打包jar cf JAR文件名称 程序文件名称或者程序所在的文件夹举例:jar cf MyApp.jar D:Jav ...

随机推荐

  1. 【转载】Sql语句用left join 解决多表关联问题(关联套关联,例子和源码)

    csdn中高手帮我给解决了,其实就是别名,给自己上了一堂别名的课,所谓别人是高手,其实就是自己是菜鸟吧! 表1:------------------------------ [人事表]     表名: ...

  2. python基础知识03-格式化输出和深浅复制

    VIM中HJKL可以上下左右移动光标. 格式化输出和深浅复制 1.字符串的拼接和格式化 sudo pip3 install ipython 安装 ipython 进入 字符串相加 str1 + str ...

  3. 2017acm南宁现场赛 J题 Rearrangement

    题意: 给定一个2 * n的矩阵, 和 2 * n 个数, 问能不能通过重排列, 使得任意相邻两数不能被3整除 分析: 这题一直卡到最后, 赛后经对面大佬提醒后, 发现统计所有数模三的结果(0,1,2 ...

  4. PTA 05-树8 File Transfer (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/670 5-8 File Transfer   (25分) We have a netwo ...

  5. 骑士精神 (codevs 2449)

    题目描述 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标 ...

  6. svg学习之旅(3)

    常用标签: <g>标签 是一个容器(分组)标签,用来组合元素的 - 共用属性 - transform = "translate(0,0)"<text>标签 ...

  7. 通过分析system_call中断处理过程来深入理解系统调用

    通过分析system_call中断处理过程来深入理解系统调用 前言说明 本篇为网易云课堂Linux内核分析课程的第五周作业,上一次作业中我以2个系统调用(getpid, open)作为分析实例来分析系 ...

  8. 通过继承Thread类来创建多线程 关键词 start

    // 代码 public class MyThread extends Thread { public void run(){ for(int i=0;i<10;i++){ try { Thre ...

  9. Hibernate学习笔记(三)

    我是从b站视频上学习的hibernate框架,其中有很多和当前版本不符合之处,我在笔记中进行了修改以下是b站视频地址:https://www.bilibili.com/video/av14626440 ...

  10. new String()理解

    public static void main(String[] args){ String a=new String("ddy"); String b=new String(&q ...