java打包jarexe并动态绑定jre再打包成安装
注:以下所有步骤的前提是,把jar文件,ico图示(pngImage文件夹),第三方jar包(lib活页夹),jre活页夹,放到同一个活页夹中。
本例放在exe4j Install4j Inno setup活页夹下,如图0
如图0
首先,我们选用exe4jjar执行文件转成exe文件
下载地址: www.ej-technologies/download/exe4j/files.html
程序安装不在赘述:
它要求系统有1.5版本以上的JDK,点Download在线下载,如果你的机器上有JDK,点Locate到你机器上已安装的JDK目录下/就可以进行安装了。
下面就使用exe4j转换jarexe的过程详细说明一下:
1步,默认即可。直接下一步
2步,如果已经有制作好的jar檔,则下面一个"JAR in EXE"
对于打包jar檔,在eclipse中右击项目选导出即可,不会制作jar檔可以给我留言
如图1
3步,上面是项目名称,可随便填写,下面一个写出你想要将打包后的exe文件输出的目录:
如图2
4步,由于我的演示程序是图形的,所以选第一个,如果你的程序是控制台的,则选择第二个,Executable name写你将要生成的exe檔的名字,Icon File可以选择生成文件的图示
如图3
5步,首先,单击绿的"+"号,在弹出的窗口中点Archive,然后到起初已经做好的jar檔,如图4"OK"后返回,在下面的Class Path里就出现jar文件路径后,再在上面Main Class栏内点击到main所在的类,如图5,这一步即算完成:
如图4
如图5
6步,一般的应该程序都要带第三方jar檔,同步骤5一样即可,结果如图6.
如图6
7步,你系统的JRE版本,上面填个1.5,下面不填也行,如图7
如图7
当然,这样配置的程序只能在安装有JRE的机器上执行,发布时总要考虑的问题就是用户是否有能力在自己机器上安装JRE,总不能发布一个程序还要用户自己安装个JRE吧,下面我就介绍如何将JDK环境变量动态打包到exe中,在这里单击advanced options(图7中有,如图8),选择search sequence。如图:
如图8
在弹出的窗口中,删除列表中所有项,然后单击绿+,选择directory并选择JRE的根目录(注意是拷贝后的目录)即可,(此步注意,选到jre6檔夹即可),如图9
如图9
点打开,结果如图10
如图10
单击ok后,再从图中单击advanced options,并选择preferred VM,在弹出的窗口中选择client hostspot VM(如图11),单击next按钮继续:
如图11
8步:配置splash screenexe运行时的过渡接口图,设置如图12spring framework jar包
如图12
9步,直接下一步即可,设置如图13
如图13
10步,编辑完成
点击即可生成exe檔(注意输出目标文件夹中不要有相同的目标exe文件)
注:exe4j未注册的版本可以在网上随便个激活码。
依照一套逻辑来寻可以用的JRE,首先查自己所在的目录下有没有JRE,其次查自己的父目录下有没有JRE;最后才是查询Windows的注册表。
现在我们的程序可以在任意的计算机上执行了,可是缺点是致命的,比方说我的程序才160K,可是不论走到哪里都要背着70MJRE,未免有点小题大做吧,其实作为我们的私有的JRE,好多内容都是可以抛弃的。Jre目录下的license都可以不要,bin下的执行档只需要保留或者lib下只要保留rtjssejcecharsets几个库就可以了。除了i386zi两个子目录外,其余的子目录都可以不要。Zi下只需要保留自己地区的子目录和其下的一些檔就可以。Lib下除了库之外的属性文件等等都要保留。这样清理一番,JRE仍然有接近50MB。还可以继续清理几个库檔里面不需要的内容,这需要仔细的整理,会很费功夫。最好能写出一个自动工具帮助我们整理它们。从Sun公司上下到的JMF里面附带的用Java写的媒体播放器就自带了JRE,只有几个MB
清理过后需要运行几遍我们的应用程序,以确保我们的JRE不缺少东西。
另外,精简jre的方法网上很多,下面了一个,大家可以参考。(此处转载的)
整个HtmlFrame2\jre6未压缩前,大约是100M左右,如果把它也放进安排包,那么整个安排包的体积将会很惊人,下面对jre进行精简。
进入jre6目录,jre6目录内,除了binlib两个文件夹外,其它所有文件都可以删除;
进入jre6\bin,随便删除一个文件,双击,如果能运行,那么这个文件就是可以删除的,如果不能运行,就把这个文件还原回去。通过这个方法清理后binlib里面的文件,体积大概能减一半。
进入jre6\lib,你会发现rt.jar这个文件,大概40M,这是Java基础类库文件,里面有几千个.class类文件,但其实许多.class在程序里并未使用。先用WinRar解压rt.jar,随便删除rt文件夹里面的文件,再用WinRarrt文件夹内的其它文件压缩成一个zip格式文件,把zip后缀改成jar,放回jre6\lib中,双击,如果能运行,则是可以删除,不能运行,就把类还原回去,再重复上边的操作。这个方法精简jre会比较累,不过这是我目前到的最有用方法了。
关于精简rt.jar的方法,网上也有一些工具如:GreenJVM等,可以直接精简rt.jar,可以把rt.jar体积减少到3M左右。不过本人用这些工具精简出来rt.jar未试过可以运行,估计是漏掉一些class
另外可以在dos下使用命令:
java -jar -verbose:class HtmlFrame.jar >&  把用到的class输出一个txt文件中,再对比进行删除。
网上也有人提供一些精简过的jre,需要的,可以自己上网下。
其次:用Inno Setupexe文件和jre打包成安装文件(此处转载的)
.使用inno setup把整个HtmlFrame程序制作成安排包。inno setup是一个免费的、使用非常简单的安排包制作工具,本篇文章使用的是inno setup简体中文版本。有兴趣的,也可以使用其它安装包制作工具。随便提一下另一个专门针对java程序的安装包工具install4j,假如在步骤2中没有给程序指定jreinstall4j可以为程序绑定一个jre到安排包中。
本篇使用的inno setup简体中文版本。启动inno setup,选择文件新建,
1步,inno setup的脚本欢迎向导


2步,配置应用程序基本信息


3步,应用程序文件夹信息


4步,选择应用程序文件,主执行文件选择;其它应用文件需要把这个程序的相关资源文件和jre也添加进去,我这里所有相关的文件都放进HtmlFrame2文件夹内,因些直接添加文件夹选择HtmlFrame2,"其它应用程序文件"列表内所有的文件都将会被打包到文件内。




5,设置应用程序图标


6步,设置安装期间相关的显示文件


7步,安装语言


8步,编译输出文件名指安装包的文件名,如输入setup,生成的安装包将为;编译输出文件夹指生成的安装包的路径;安装程序图标文件指安装包的文件图标;


之后的直接点下一步,在出现立即编译新的脚本提示时,点击确定进行编译。


编译完成后将会在编译输出文件夹生成一个文件。


整个安排包的制作过程到此已经完成,现在可以把发给其它人安装使用

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。