用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)