java打包exe 制作安装包 With JRE 自启动

本文提供了一套Java程序打包方案,使安装过程如同安装QQ一样简便。方案包括JRE瘦身、程序打包、自启动设置及安装包制作等步骤,适用于希望简化部署流程的开发者。

又是一个无聊的周末,硬着头皮给客户想出一套java程序打包的解决方案

目标:有安装程序包像安装qq一样简单一直下一步即可 ,可卸载,要求程序自动启动,不需要单独安装JRE,就在写这套解决方案的时候,我真是百般痛恨微软.哎无奈啊.幸好最终还是被我想出来了,分享下吧,好久不写博了.

第一步 jre减肥,删除jre/lib/rt.jar中不使用的类,删除charsets.jar中不使用的字符集编码.MyWork开源项目(http://mywork.sourceforge.net/)中带了一个瘦身过的JRE6.0,非常小只有几M.如果有需要可在此基础上适当的增肥,例如提示有类找不到,只要在完整的jre下rt.jar包中找到这个类所在的包添加到瘦身过的jre即可.
第二步 使用pack200进行压缩,压缩效果非常惊人,具体用法可参考官方手册,下面是最简单的压缩和解压缩命令(如果要制作安装包的话不建议压缩,因为不方便解压缩,还需要另外写程序进行解压)
 压缩命令D:/xxxxx/pack200 rt.jar.pack.gz rt.jar
 解压缩命令unpack200 -r jre/lib/rt.jar.pack jre/lib/rt.jar
第三步 将自己的程序打成jar包,注意指定主类,连同依赖的jar包一同放到jre/lib/ext下面,(当然也可以不怎么干,通过写批处理指定CLASSPATH)直接放到ext下面的好处在下面会体现出来

第四步 在jre文件夹的上层目录下面编写启动批处理%1的作用下面在说
 @SET PATH=./jre/bin;%1;%PATH%;
 @start javaw com.Main(根据实际情况修改为自己的程序入口)

将本地的jre或jdk文件夹重命名,并在cmd下敲java以确认本机的jre已经失效,点击批处理,测试如果程序正常启动的话,继续往下看,如果程序无法启动,将@start javaw com.Main改写为java com.Main重新启动调试下,看看是不是缺类.

第五步 将批处理编译成exe程序,使用Quick Batch File Compiler工具(http://www.abyssmedia.com/download.shtml),程序使用起来非常简单这里就不在介绍了,E文不好的可以去汉化新世纪下载中文的,注意如果要制作成安装包必须使用幽灵模式,不可以使用控制台模式.

第六步 制作安装包使用InnoSetup工具(百度一下到处都有下载),此工具有使用向导,这部分就不介绍了,向导结束后,会提示生成脚本,保存此脚本并生成exe安装包,运行安装包,如果生成出来的文件程序结构和第四步是一样的,并且可以运行的话,安装包制作完成.(这一步选择程序文件时批处理exe和jre一同加进来注意jre必须是没有进行pack2000压缩的,否则需要在安装脚本里面另写解压程序)

第七步 随windows自动启动程序,修改安装脚本添加如下代码
[Registry]
Root: HKLM; Subkey: "SOFTWARE/Microsoft/Windows/CurrentVersion/Run"; ValueType: string; ValueName: "程序名"; ValueData: """{app}/主程序.exe"" ""{app}/jre/bin"""

这里面就用到了%1 熟悉批处理的同学都知道系统自启动的时候.代表的并不是程序的所在文件夹,所以这里传递了jre所在文件夹参数,@SET PATH=./jre/bin;%1;%PATH%;中把jre添加到了path中.

第八步注销下重新登录看看程序是否自动启动了.(可以在没有安装jre的机器上测试下)

 

我的安装包大小为10M左右,我依赖了很多第三方的jar包,否则还可以更小,最后还可以加个壳或使用rar压缩下

树洞OCR文字识别软件可以帮助用户识别图片上的文字内容,当用户需要复制图片上文字的时候就可以通过这款识别,从而一秒钟读取文字到软件界面,这样就可以直接复制文字,节约抄写的时间,现在有的文本内容是防止复制的,如果不能复制就只有通过手动抄写的方式录入文字,而这款treehole ocr文字识别软件就可以解决抄写的问题,直接从图片上识别文字并且复制,需要的朋友就下载吧! 软件功能   树洞OCR文字识别通过截图的方式对需要复制的内容截图识别   遇到不能复制的文本页面就通过这款软件截图   鼠标选择截图范围,将需要复制的文字内容截图到软件界面,从而自动识别   软件不需要点击“识别”,截图完毕自动识别文字内容   文字自动在软件界面显示,用户需要点击“换行”才能全部显示文字   也提供一个复制按钮,点击“复制”就可以对页面全部内容复制 软件特色   1、树洞OCR文字识别让用户更方便复制文字内容   2、直接对文本页面截图,从而一键复制文字内容   3、适合不能直接复制文字的情况下使用   4、例如一些已经设置“防复制”权限的文本   5、如果不能从PDF页面复制文本就通过这款软件截图识别   6、识别的文字在树洞OCR文字识别显示,并且可以一键复制   7、支持一键清空,在软件界面直接删除页面识别完毕的文字
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值