您的位置:首页 > 编程语言 > Java开发

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

2010-01-10 15:54 323 查看

用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配置文件,基本内容如下

[mysqld]

#设置basedir指向mysql的安装路径

basedir=C:/Program Files/Tx2/MySQL

datadir=C:/Program Files/Tx2/MySQL/data


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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: