最近需要制作java desktop application的安装程序。
好不容易在网上down了个installanywhere9安装并破解, 用起来还挺顺利,功能比较强大,许多地方可以定制,当然做出来的程序在安装时也随处可见installanywhere的身影,商业软件嘛!没办法。
后来程序在运行过程中,发现自以为设置进去了java desktop application的jre的-xms和-xmx根本没生效,老是导致OutOfMemoryError。在多个地方试验,包括installanywhere的界面上设置minimum heap size和maximum heap size,在installanywhere的安装目录下设置后缀名为LAX的xml文件里的相应值,都达不到预期的目的。最后在其制作的安装程序安装释放出来的一个后缀名为LAX的文件里设置响应值倒是好了,但这毕竟是马后炮。只能怀疑上面达不到预期步骤的原因是那些地方设置-xms和-xmx是给制作安装程序时的jvm设置的,当然并不能确定。
后来咨询以前的领导,他推荐inno这一安装程序制作软件,很好,是免费软件,但有点不爽的是它必须指定一个exe程序。于是乎,写了一个执行java程序的bat文件,在这个bat里设置好-xms和-xmx,然后用vc做了一个执行该bat的exe文件。几乎是可以运行了,但是有些问题,比如bat里使用了javaw命令,每次执行的时候dos黑窗口总要flash一下,体验很差;javaw后面指定jre路径比较繁琐。未知这里是否能解决,碍于时间,不能一探究竟。
最后采取exe4j+inno结合的方式。先用exe4j将java desktop application制作成exe程序,再用inno制作安装程序,比较顺利,但有一点:exe4j是收费的。