一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞

转载自:http://www.blogjava.net/huliqing/archive/2008/04/18/193907.html

对于作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文件,可以更好的保护你的程序不被反编译。

接下来设置你的程序的短文件名,源文件夹路径(如我的:E:\MyLoading),以及要生成的exe文件的存放目录,exe存放目录必须指定到源文件夹下,这里我把它指定为E:\Myloading的根目录下。

接下来,可以给我们即将生成的exe文件起一个名字,如我的“MyLoading”,还可以给它指定一个ico类型的图标,其它按默认就可以了,如图:

接下来的这一步,我们需要把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径:

基本上你所需要用到的Jar文件都要添加上去,可以逐个添加上去,也可以添加整个文件夹或者使用系统环境变量,为了使你的程序能够随处运行,所以还是强列建议你使用相对路径,并且不要使用环境变量。添加好你的类路径之后回到上一步去选择好你的"Main Class"即可。

接下来先选择我们的程序所需要的jre版本, 然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以必须把我们自带的jre指定为首选的运行环境,如图选择:
Search sequence

默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了,然后添加我们自己的jre所在的目录路径,点+号开始:

这里还是建议使用相对的目录路径:

指定jre所在的目录,如图:

最后我的jre目录路径就是这样的:.\jre1.6

下面这一步只是简单的给程序添加一个启动画面,然后按默认下一步下一步就可以了。

程序最终生成了这个执行文件: MyLoading.exe
现在使用它,已经可以正常利用我们自带的jre启动程序了,但是整个程序仍有40M的大小.
现在我们使用Inno Setup进行压缩并制作一个安装包。

Inno Setup的下载安装请到网上搜索,安装后启动脚本向导,如图所示:

整个过程很简单:

这里指定你的程序的启动文件,即刚才用exe4j创建的exe文件,并将你的整个程序目录都包含进去就可以了,接下来的基本上一直按下一步就可以了,直到脚本向导完成,

然后执行该脚本即可:

然后找到Inno Setup的默认输出目录,就可以看到编译输出后的安装包了,如下图:MyLoading安装.exe
大小已经压到了8.86M。

利用这个就可以快速轻松的安装你的Java桌面应用了。

时间: 2024-11-06 12:26:37

一键搞定Java桌面应用安装部署 —— exe4j + Inno Setup 带着JRE, 8M起飞的相关文章

几周内搞定Java的10个方法

不要将Java与JavaScript弄混了,Java的目标是“一次编译,到处调试”(呃,不对,是“到处运行”).简单来说,就是Java程序可以直接在任何设备上运行. Java语言是什么? 不管我们是否意识到,实际上我们基本每天都在与Java打交道.在浏览网页时,可能会弹出一个提示,要求必须安装Java才能继续浏览.这种情况一般发生在使用flash或者是通过某种方式将flash组件集成到核心系统的站点. Java并不是那种通常在新电脑上直接下载下来就能用的程序.我不能确定有没有操作系统将Java作

高考估分查分选志愿一键搞定_支付宝又操办了件人生大事

原文链接 可能比高考更考验心力的填报志愿,支付宝要帮你一键搞定. 支付宝今天正式上线集估分.查分.选志愿等众多服务于一体的高考后综合服务平台,陪伴高考学生的青春大考.考生在估分.查分后,还可以看到系统智能推荐供参考的合适志愿.这项由好未来教育集团旗下高考服务机构高考派提供的增值服务,基于模型算法,也是首次在支付宝上全面免费. 去年,支付宝上线了高考"预约查分"和"实时查分"功能.今年,支付宝依托高考派提供的院校库.专业库.分数线以及排行榜,可以为考生提供估分.查分.

JAVA的环境安装部署——小白必看

初识JAVA Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程. 程序与JAVA JAVA技术平台 安装JAVA语言开发工具包JDK JDK压缩包链接:https://pan.baidu.com/s/1yyPlSS2Gu7O-RV3oZsY-Yw提取码:e22q首先拷贝压缩包,给

搞定pycharm专业版的安装

学习python也有一段时间了,装了python2,也装了python3.对于IDE当然首选了人人拍掌叫好的pycharm.其实作为小白,一开始的时候并不知道什么是IDE,什么是pychram,以为装了python,直接就是用python那个东东来敲代码,然后就点击python的那个可执行文件,丫的,只看到一闪,然后什么就没了--唉,年少无知啊. 一开始呢,就不知道在哪搞了一个pycharm2016.3.2,然后就一通搞,装上去了,开始了快乐的学习之旅-- 直到最近要学习Django了,需要新建

如何四个月搞定java?

目前国内从事软件开发的,java的占比是越来越高,不说别的在培训视频的绝对量上,java几乎占据了半壁江山,很多小伙伴直接从网上搜到一些视频,然后制定好计划开始了java的学习计划,然后大部分的开始对着视频学的非常有意思,但是慢慢的学到一半,发现离了视频不知道就不知道怎么写的代码了.然后让东西写代码一些很常见的程序也是别别扭扭的才弄出来,全然没了看视频的那种自信满满的感觉.但是一边看视频一边有老师指导效果就会不一样,有不懂得问题都可以找老师解答.有什么问题也可进java学习qun52159582

(视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份

本文是<快速创建网站>系列的第8篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://anb.io/blog/tag/wordpress-on-azure/ 1. 网站管理平台WordPress和云计算平台Azure简介 (6分钟视频 ) 2.1 在Azure上创建网站及网站运行机制 (13分钟视频) 2.2 域名绑定操作和Azure负载均衡机制 (12分钟视频) 2.3 WordPress 初始化和网站管理功能 (11分钟视

3分钟搞定apache+tomcat集群部署

注意:如果你的2个tomcat在同一个服务器上,那么需要保证他们的端口号是不同的. 下面开始部署 Apache 部署: 在httpd.conf文件中添加 ProxyRequests Off ProxyPass / balancer://proxy/ <Proxy balancer://proxy/> BalancerMember http://192.168.5.135:8080route=Tomcat1 BalancerMember http://192.168.5.135:8081rout

选课不再纠结!10个课程搞定Java!

身在茫茫的课程海洋的童鞋们,是不是很迷茫?数百个课程我该学哪个?这个课程质量怎样啊?学院课程小管家整理出了最受欢迎的10个Java类视频课程~迷途中的童鞋们终于不再纠结了!!!10各课程包含了初中高3各阶段,小管家是不是很贴心^_^ 大家有想要的专题欢迎在评论中说明哟,管家会根据需求的情况,进行下一个专题的选择~~~~ (一)  小白进阶必学~ 1.http://edu.51cto.com/course/course_id-4191.html 刘英杰 课程名称:JavaWeb(JSP+servl

几行代码搞定java生成解析二维码功能

最近公司要求扫描二维码和生成二维码的功能.而群里部分网友也提到了.我这里就写了一个demo,和大家分享.代码很简介,希望大家能够喜欢. 网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配. 我这里共享了一个zxing的2.2版本的例子,也提供了下载地址.实现代码如下: package com.herman.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep