InstallAnywhere 是制作跨平台安裝包的商業工具,支持將 JDK、Tomcat、MySQL 與 Web 應用打包為單一可執行安裝程序,實現「雙擊安裝、自動配置環境、註冊服務、啟動瀏覽器」的交付體驗。本文記錄完整製作流程,含環境變量、服務註冊、靜默安裝、協載腳本等關鍵步驟。
jdk1.7.0_75)。apache-tomcat-7.0.72)。mysql-5.6.26,含 data 目錄)。webapps。D:\deploy\package_root)。@echo off
echo "註冊 MySQL 服務"
cd /d %1\mysql-5.6.26\bin
mysqld --install mysql-iams
echo "啟動 MySQL 服務"
net start mysql-iams
echo "啟動 Tomcat"
cd /d %1\apache-tomcat-7.0.72\bin
call startup.bat
@echo off
echo "停止 MySQL 服務"
cd /d %1\mysql-5.6.26\bin
net stop mysql-iams
mysqld --remove mysql-iams
echo "停止 Tomcat"
cd /d %1\apache-tomcat-7.0.72\bin
call shutdown.bat
關鍵點:%1 為 InstallAnywhere 傳入的安裝目錄 $USER_INSTALL_DIR$,腳本需使用相對路徑。
Project → Locales → 勾選 Chinese (Simplified)、English 等。
Install → Add Action → Set System Environment Variable → Add 四個變量:
| 變量名 | 值 |
|---|---|
| JAVA_HOME | $USER_INSTALL_DIR$\jdk1.7.0_75 |
| CATALINA_HOME | $USER_INSTALL_DIR$\apache-tomcat-7.0.72 |
| CATALINA_DIR | $USER_INSTALL_DIR$\apache-tomcat-7.0.72\bin |
| PATH | $USER_INSTALL_DIR$\jdk1.7.0_75\bin;$USER_INSTALL_DIR$\mysql-5.6.26\bin;$USER_INSTALL_DIR$\apache-tomcat-7.0.72\bin;C:\Windows\System32 |
Install → Add Files → 將 jdk、tomcat、mysql、webapps/你的項目 整個目錄添加到 User Install Folder 根節點。
install.bat
Command Line: cmd /c $USER_INSTALL_DIR$\install.bat $USER_INSTALL_DIR$ Options: 勾選 "Run Once"、"Run as Administrator"、"Wait for Completion" Position: 移至 "Install Complete" 面板之前
my.ini(若無則先建空文件)
Installed File: $USER_INSTALL_DIR$\mysql-5.6.26\my.ini Additional Text: Prepend 內容見下方 my.ini 模板 Position: 移至 "Install Complete" 面板之後
Comment: 啟動 MySQL Script: net start mysql-iams Position: 緊隨 Modify Text File 之後
# For advice on how to change settings please see
# https://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=GBK
[WinMySQLAdmin]
Server=$USER_INSTALL_DIR$\mysql-5.6.26\bin\mysqladmin.exe
basedir=$USER_INSTALL_DIR$\mysql-5.6.26
datadir=$USER_INSTALL_DIR$\mysql-5.6.26\data
max_connections=200
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Post-Install → Add Action → Launch Default Browser
URL: https://localhost:8080/你的項目名
Position: 移至 "Install Complete" 之後
Pre-Uninstall → Add Action → Execute Command
Command Line: cmd /c $USER_INSTALL_DIR$\uninstall.bat $USER_INSTALL_DIR$
Position: 第一個
Options: 勾選 "Run Once"、"Run as Administrator"、"Wait for Completion"
Web_Installers\InstData\Windows\VM\install.exe 即為最終安裝程序。install.exe -i silent -f installer.properties,需預先生成响应文件。netsh advfirewall firewall add rule 自動放行 8080/3306。.sql 腳本放入 MySQL data 目錄,或在 install.bat 中調用 mysql -u root -p < init.sql。$USER_INSTALL_DIR$\InstallAnywhere\logs,構建日志在專案目錄 Logs。InstallAnywhere 雖為商業工具,但其強大的「預裝環境+服務註冊+腳本編排」能力,極大降低了 Java Web 應用的交付門檻。核心在於:環境變量參數化($USER_INSTALL_DIR$)、服務生命周期腳本化、配置文件模板化。掌握此流程,即可產出「開箱即用」的企業級安裝包。