现在的位置: 首页 > 综合 > 正文

用 installanywhere2009打包java程序 带有mysql数据库

2013年02月12日 ⁄ 综合 ⁄ 共 2168字 ⁄ 字号 评论关闭

最近做了一个桌面程序,用到了mysql数据库,最后要实现程序打包成安装文件。就java本身而言,这并没有什么难的,但因为有了mysql这个烂东西,让我研究打包就打了一个多周,而网上的有些方法,看似很详细,其实会遇到很多错误,以下是本人经过简化之后的步骤,不要问为什么,多打几遍你就知道了:

1.你要下载installanywhere,去Google上搜一下就有,还有破解方法(一定要破解,虽然不破解也能打包,但你会发现一段时间后就不能用了)。

2.要下载绿色版的mysql,一定要用绿色版的,否则会带来很多不必要的麻烦。搜一下csdn上就有。

3.把你要打包好的东西全部放在同一个文件夹下,我们暂且叫这个文件夹叫做abcde。其中,mysql绿色版解压后改名为mysql(不是必需的,只是为了书写方便),然后将mysql文件夹放在abcd目录下。

4.打开mysql,查看有没有一个叫做my.ini的文件,没有的话创建一个。我的my.ini内容如下:

[client]

port=3306

[mysql]

default-character-set=utf8
[mysqld]         
basedir=D:/Program Files/CharacterWeb/MySQL     
datadir=D:/Program Files/CharacterWeb/MySQL/data 

default-character-set=utf8

最重要的是
basedir=D:/Program Files/CharacterWeb/MySQL     
datadir=D:/Program Files/CharacterWeb/MySQL/data 

这个会指导系统区注册你的mysql服务,不过最好改成如下形式:

basedir=$INSTALL_DIR$/MySQL     
datadir=$INSTALL_DIR$/MySQL/data 

$INSTALL_DIR$是installanywhere传的参数,即你的安装路径

5.打开installanywhere,新建一个基本模板,保存路径,点击下面的AdvancedDesigner(有两种形式,一种是向导形式的,一种是详细设置,这里我们用详细设计)

之后会看到如下界面:

 

在project---info中写上自己的软件名(记住,这里面的大多数东西都是不用配置的),在project--Locales中选择安装语言。

6.如下图所示,点击AddFiles加入整理好的abcd文件夹下的所有文件夹和文件(不包括abcd文件夹本身)

点击一下SetClasspath,否则完成后将找不到程序的入口。右边还可以选择你的软件安装好后的图标。

7.下面的这一部分是重点,往往都会在这上面出错:

上面显示的一个个都是通过AddAction添加的行为,也就是安装过程中所要发生的一些事,比如使用前说明,mysql注册,mysql服务启动等等.下面是我测试成功的顺序,改变后可能会出错:

(1)新建一个ActionGroup,用来存放你新建的Action

 

(2)新建一个Execute Script/Bach file

里面然后再下面填充内容(直接拷贝就行了):

Comment:  删除服务执行文件项

Script:   REG Delete HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Mysql /v ImagePath /f

(3)新建第二个Execute Script/Bach file

里面然后再下面填充内容(直接拷贝就行了):

Comment:  MySQL注册

Script:   Call "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe" -install Mysql --defaults-file="$USER_INSTALL_DIR$/MySQL/my.ini"

(4)新建第三个Execute Script/Bach file

里面然后再下面填充内容(直接拷贝就行了):

Comment:  添加服务执行文件项

Script:  REG add HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MySQL /v ImagePath /t REG_EXPAND_SZ /d "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe /"--defaults-file=$USER_INSTALL_DIR$/MySQL/my.ini/" MySQL"

(5)新建startWindowsService

(8)最后一步,按图例选择即可,然后点击Build Project即可:

到这里基本上就完成了,点击TryInstaller试着安装一下。

另外,还有一个问题,有的同志喜欢打包前将数据也一块打进去,这样mysql就不用再导入数据了,有的人一定会想用脚本控制,我感觉太麻烦,脚本老是出错,所以我想了另一个办法,那就是先按上述方法安装好,用图形工具把数据倒入mysql,然后把安装好的目录下的mysql整个目录覆盖abcde下的mysql目录,再重新打一遍就ok了,这样用户安装完后数据就可以直接用了。

 

(本人新手,不足之处,多多指正)

【上篇】
【下篇】

抱歉!评论已关闭.