用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程式的路徑,需要安裝完成後根據環境修改。新增一個
1、"C:/Program Files/Tx2”替換為“$USER_INSTALL_DIR$”,
2、”/” 替換為 “/”。
b)將mysql註冊為系統服務。新增一個Execue Script/Batch file(執行指令碼/命令)。在Comment填寫動作的名字“註冊Mysql服務”,在Script
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)