对于作Java桌面应用来说,比较烦人的就是安装部署问题,客户端是否安装 有jre、jre版本问题、jre去哪下载、如何用jre启动你的Java应用?不要说刚接 触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用, 如何在Windows下启动它,估计都会折腾半天。如果不是因为这个问题,Java在 我的眼里算是最完美的语言了,也是我最喜爱的语言。
所以我认为这个是导致Java桌面应用被一些人所讨厌的最大原因,Java的优 势是“一次编写,随处运行”,跨平台特性确实很好,但并不是每个人都需要或 都想要跨平台,而且有时候JVM平台或版本问题也会造成“一次编写,到处测试” 的尴尬。
最好的方式莫过于带着JRE,让用户轻松点击就能运行。下面我们来解决这样 的问题,有什么好的建议或方法请其他朋友多多指教或补充!
针对windows平台,让用户一键式安装,双击使用, 使用工具exe4j + Inno Setup, 这两个工具都可以在网上找到,不熟悉的可以多搜搜,使用起来也不难 。
带着JRE运行,JRE的大小应该是最让人头疼的,我默认安装的jre6大小达到 80M,而程序只有200-300k左右,感觉非常不合理,分发与网络传输过程也会大 受影响!为了解决这个问题我一直在网络上搜索“瘦身版”的JRE,无意中搜到 了Beansoft老师介绍的一篇关于迷你JRE的文章,相关的JRE下载后解压约14M左 右,试用了一下,相对于我的应用缺少了一些类文件,关于部分xml操作类,及 swing桌面应用框架相关连的部分类也找不到,最后借鉴了一下,自己把一个完 整的JRE从80M瘦到了38M,去除了很多不需要的类文件,当然,如果耐心一点还 可以再瘦下去,再抽掉一些类文件。
在这个基础上再配合Inno Setup这个安装包制作工具,最后把整个程序从40M 压到了8M,下面看看关于整个操作过程,关于JRE的瘦身有些烦琐就不写了,而且 SUN的JRE瘦身计划也在进行,相信很快会有更小的瘦身版JRE推出,自己没有必要 再去费神。
下面是我的一个完整的Java程序 —— MyLoading
可以看到已经附带了jre1.6 , 下面先使用exe4j给它制作一个exe执行文件( 即上图的MyLoading.exe),并指定我们自带的jre1.6 。以下是exe4j的启动界面 ,点击下一步开始创建配置文件。
接着选择类型,我们选择第一个,这样可以保证程序仍具有跨平台的特性。 如果选择第二个,可以把程序完全编译成exe文件,可以更好的保护你的程序不 被反编译。