首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

InstallAnywhere 打包 Java Web 應用全流程:JDK+Tomcat+MySQL 一鍵安裝包製作實戰

     編輯:Java 綜合教學

InstallAnywhere 打包 Java Web 應用全流程:JDK+Tomcat+MySQL 一鍵安裝包製作實戰

InstallAnywhere 是制作跨平台安裝包的商業工具,支持將 JDK、Tomcat、MySQL 與 Web 應用打包為單一可執行安裝程序,實現「雙擊安裝、自動配置環境、註冊服務、啟動瀏覽器」的交付體驗。本文記錄完整製作流程,含環境變量、服務註冊、靜默安裝、協載腳本等關鍵步驟。

一、準備工作

  • InstallAnywhere 2015/2017/2020 等版本(需授權)。
  • 解壓版 JDK 1.7+(示例 jdk1.7.0_75)。
  • 解壓版 Tomcat 7.0+(示例 apache-tomcat-7.0.72)。
  • 解壓版 MySQL 5.6+(示例 mysql-5.6.26,含 data 目錄)。
  • Web 項目 WAR 包或展開目錄,放入 Tomcat webapps。
  • 將上述四個目錄置於同一父目錄(如 D:\deploy\package_root)。

二、編寫批處理腳本

1. install.bat —— 安裝後註冊並啟動服務

@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

2. uninstall.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$,腳本需使用相對路徑。

三、InstallAnywhere 專案配置

1. 創建項目

  • File → New Project → Typical Project Template → Advanced Designer。
  • 設置 Title、Name、Version 等基本信息。

2. 本地化語言

Project → Locales → 勾選 Chinese (Simplified)、English 等。

3. 設置系統環境變量

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

4. 添加文件集

Install → Add Files → 將 jdk、tomcat、mysql、webapps/你的項目 整個目錄添加到 User Install Folder 根節點。

5. 註冊與配置 MySQL 服務(Post-Install 階段)

  1. Execute Command:運行 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" 面板之前
    
  2. Modify Text File - Single File:生成 my.ini(若無則先建空文件)
    Installed File: $USER_INSTALL_DIR$\mysql-5.6.26\my.ini
    Additional Text: Prepend
    內容見下方 my.ini 模板
    Position: 移至 "Install Complete" 面板之後
    
  3. Execute Script/Batch File:啟動 MySQL
    Comment: 啟動 MySQL
    Script: net start mysql-iams
    Position: 緊隨 Modify Text File 之後
    

my.ini 模板(Prepend 內容)

# 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

6. 安裝完成自動打開瀏覽器

Post-Install → Add Action → Launch Default Browser

URL: https://localhost:8080/你的項目名
Position: 移至 "Install Complete" 之後

7. 協載配置(Pre-Uninstall 階段)

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"

四、構建安裝包

  • Build → Build Project → 等待完成。
  • Open in Explorer → Web_Installers\InstData\Windows\VM\install.exe 即為最終安裝程序。

五、進階技巧與避坑指南

  1. 靜默安裝:install.exe -i silent -f installer.properties,需預先生成响应文件。
  2. 64 位系統:確保 JDK、Tomcat、MySQL 均為 64 位,InstallAnywhere 專案設置為 64 位模式。
  3. 防火牆/端口:安裝腳本中可添加 netsh advfirewall firewall add rule 自動放行 8080/3306。
  4. 數據庫初始化:將 .sql 腳本放入 MySQL data 目錄,或在 install.bat 中調用 mysql -u root -p < init.sql。
  5. 升級包製作:勾選 "Upgrade" 選項,指定舊版本安裝路徑檢測邏輯。
  6. 日志調試:安裝日志位於 $USER_INSTALL_DIR$\InstallAnywhere\logs,構建日志在專案目錄 Logs。

總結

InstallAnywhere 雖為商業工具,但其強大的「預裝環境+服務註冊+腳本編排」能力,極大降低了 Java Web 應用的交付門檻。核心在於:環境變量參數化($USER_INSTALL_DIR$)、服務生命周期腳本化、配置文件模板化。掌握此流程,即可產出「開箱即用」的企業級安裝包。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved