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

用InstallAnywhere打包Java程序包含MySQL数据库

2018年01月22日 ⁄ 综合 ⁄ 共 2058字 ⁄ 字号 评论关闭

InstallAnywhere打包Java程序包含MySQL数据库

 

InstallAnywhere打包Java程序时可以自动完成jre的打包,但是需要MySQL数据库的程序就得手动添加。资料太少,纠结了三天,终于解决

 

1、  下载绿色版的MySQL,可以去官网下载。网友制作了MySQL的绿色精简Bat版(http://download.csdn.net/source/524812),可以最大化的缩小安装包的体积。所以我采用了这种方式。

 

2、  绿色精简的MySQL是以进程方式启动,对于安装版的软件,使用服务方式启动更方便。从完整版拷贝/bin目录下mysqld-nt.exe文件到精简版的相应目录中,同时在MySQL目录下创建一个启动服务需要的my.ini配置文件,基本内容如下

 

 

 

3、  数据库安装完成需要导入一个sql文件来进行初始化,建立应用程序所需要的结构。从完整版拷贝/bin目录下mysqldump.exe文件到精简版的相应目录中,同时将要安装的应用程序所需要的sql文件放到/bin目录下

 

 

4、  MySQL目录中添加到InstallAnywhere工程中,在Post-Install(安装之后)添加以下动作:

 

a)         my.ini中包含了mysql程序的路径,需要安装完成后根据环境修改。添加一个Modify Text File – Single File(修改单文件),Installed file中选择my.ini文件$USER_INSTALL_DIR$$/$MySQL$/$my.ini,点击下边Search and replace strings后的Configure。增加两个字符串替换(不包含引号)

 

1、"C:/Program Files/Tx2替换为“$USER_INSTALL_DIR$

2/替换为 /

 

b)    mysql注册为系统服务。添加一个Execue Script/Batch file(执行脚本/命令)。Comment填写动作的名字“注册Mysql服务”,在Script填写命令Call "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe" -install Mysql --defaults-file="$USER_INSTALL_DIR$/MySQL/my.ini" )(不包含括号)。因为执行完此步才能继续向下执行,选中下边Suspend installation until process completes

 

c)        Mysql服务启动时从注册表中读取mysql.exe和配置文件my.ini的路径,需要向注册表中添加。类似b中的方法,依次添加“删除服务执行文件项”(REG Delete HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Mysql /v ImagePath /f)和“添加服务执行文件项”( 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"

 

d)        启动Mysql服务。添加一个Start,Stop,Pause Windows Service(启动,停止,暂停Windows服务),Service Name中添加服务名mysql,选中下边Start service和后边的选项Suspend installation until process completes,等待执行完毕。

 

e)         建立数据库表结构,用sql文件初始化数据库。类似b方法,添加初始化数据库(Call "$USER_INSTALL_DIR$/MySQL/bin/mysqldump.exe" -u root tx2< "$USER_INSTALL_DIR$/MySQL/bin/tx2.sql")。

 

 

5、  在卸载时,需要添加动作完成卸载前的服务清理工作,在Pre-Uninstall(卸载前)依次添加

a)  依照4.d中的方法,添加关闭Mysql服务的动作

b)  依照4.b中的方法,添加“删除MySQL服务”( sc delete mysql

c)  依照4.b的方法,添加“删除执行文件项”( REG Delete HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Mysql /v ImagePath /f

 

抱歉!评论已关闭.