桌面程序项目完成后,需要将项目打包成安装包在WINDOWS下运行,用户安装后直接运行EXE即可运行JAVA写的系统。
我使用了
JSMOOTH 0.9.9.7来将JAR生成EXE,
然后再用inno setup 5.0将EXE,绿色的JRE,MYSQL打包成安装包,用户安装时执行选择安装路径就可以完成所有安装,安装后弹出配置界面让用户选择是否在本地安装MYSQL还是使用远程的MYSQL,然后生成相应的配置文件和WINDOWS服务。
JSMOOTH下载路径:
http://jsmooth.sourceforge.net/
INNO SETUP下载路径:
http://www.jrsoftware.org/isinfo.php
INNO SETUP的参数配置可以参考
http://www.jrsoftware.org/ishelp/
http://www.xdowns.com/article/170/Article_938.html
绿色JRE
直接从本机安装的JRE的整个目录COPY,没做最小化
绿色MYSQL
也是直接从本机COPY,安装时更加安装目录修改MY.INI中的basedir和datadir,
并且直接使用Runtime.run运行 CMD命令的生成MYSQL服务
{app}/mysql/bin/mysqld --install mysql --defaults-file={app}/mysql/my.ini
net start mysql
删除MYSQL服务的CMD
net stop mysql
{app}/mysql/bin/mysqld --remove mysql
其中的app是安装目录,安装时以参数方式传给JAVA的MAIN
JSMOOTH使用很简单,不过有两个小BUG
1、选择EXE图标时发现不识别ICO文件,比较搞笑
2、中文名称EXE,每次关闭后再打开都会乱码,但是生成的EXE名称不乱码,只能在每次重新打开时重新输入中文名称
3、JVM配置,有MAX和INIT,及最大内存和初始化内存一定要设置合理,MAX要大于INIT,我有一次不小心把MAX设成小于INIT的,结果生成的EXE总不能执行,原因还怪怪的。
INNO SETUP使用也很简单,使用INNO SETUP 5.4.2 unicode版
1、新建时有界面配置,编辑是只能写脚本了,没有界面。具体语法参考上面连接
2、默认生成的安装包,安装时界面是英文的,可以用附件中的Default.isl替换安装目录中的同名文件,即可显示中文安装向导
3、自定义的弹出界面,需要单独用JAVA写代码,然后用JSMOOTH编译成EXE,可以使用绑定JVM,然后再在INNO SETUP的脚本中引用,我是写在[RUN]端中,如下:
Filename: "{app}\myconfig.exe"; Description: "安装数据源";Parameters: "{app}" ; Flags: skipifsilent