用InstallAnywhere打包Java程序包含MySQL數據庫

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章