最近,一直在复习,微积分和线性代数,自己动手编程实现了不少小东西,发现数学真的很美,争取过几天不忙的时候,写几篇博文,相当于做个笔记,免得忘记。
今天,时间仓促,又想写点什么,正好,有个人问我,怎么把java工程弄成安装包,发给没有jre的人运行。回想自己第一次弄的时候,找资料挺累的,所以决定简述一下我用过的方法、软件及大体流程,以便需要的人快速完成,也怕自己需要的时候忘掉了还需要找资料。
首先,用到的软件:exe4j和Inno Setup 编译器
流程及大体原理如下:
首先,用IDE导出工程的jar文件,导出的时候,看一下那些选项,有个设置main函数路径的,尽量设置一下,因为据我的实践经验,exe4j较低版本不能自动识别main函数路径。
然后,打开exe4j,选择“JRE IN EXE MODE”,然后,填写路径什么的,一路next,有个设置main函数的地方,就是先选择“+”,添加之后,再点main右边的“。。。”按钮,自动就会识别路径,下面的东西英语都浅显易懂,根据自己的需要设置,比如,设置程序名称,程序图标,程序运行之前的动画等,很有意思的。
通过exe4j,我们可以得到,exe运行程序,网上有人说,可以exe4j可以将jre打包进这个得到的exe程序,但是,在2年前,我实验了很多次,都不行,可能是当时我的exe4j版本的问题。
最后,由于不能将jre直接添加进exe程序,所以,我当时采用了Inno Setup 编译器,打算把exe程序和jre一起放进安装包中。
这里有两点需要注意:
第一,如果采用我这种想法打包,那前面exe4j的过程中,需要改一个设置,就是把jre路径设置一下,最好就是弄成相对路径,即把jre文件夹放到,你想到生成exe程序的那个文件夹里,同时,可以删除掉默认的搜索本机环境变量或者什么的。
第二,在inno setup中,有一个选项不能使用默认的,就是选择没有主程序的按钮,这样打包之后,别人安装了之后,文件结构才不会改变,那么你第一步设置的相对路径就没有问题了。
这样,我们将成功打包了,另外注意,jre整个文件夹比较大,所以,要想小一些,可以使用网上各种精简版的jre,注意你代码里使用的类库,选择相应的精简jre即可。