1. 程式人生 > >用InstallAnywhere打包Java程式包含MySQL資料庫

用InstallAnywhere打包Java程式包含MySQL資料庫

InstallAnywhere打包Java程式包含MySQL資料庫

InstallAnywhere打包Java程式時可以自動完成jre的打包,但是需要MySQL資料庫的程式就得手動新增。資料太少,糾結了三天,終於解決

1、下載綠色版的MySQL,可以去官網下載。網友製作了MySQL的綠色精簡Bat版(),可以最大化的縮小安裝包的體積。所以我採用了這種方式。

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