NSIS是一个比较好用的,开源的打包工具,通过它,可以让你的应用部署变得简单起来,实现类似WINDOWS向导一样的安装部署你的程序
默认NSIS也提供向导,但是想要更高级的功能,也要自己开发代码脚本哦,它的脚本看起来有点汇编的感觉。。。
它的主页 http://nsis.sourceforge.net/Main_Page ,可以看看他的介绍,还有不少的例子。目前最新版本是NSIS 2.46
下面是一个简答的示例代码
!include "zipdll.nsh" !include "MUI.nsh" !include "Sections.nsh" ; 安装程序初始定义常量 !define PRODUCT_NAME "####" ;!define PRODUCT_VERSION "3.0" !define PRODUCT_VERSION "3.0" !define PRODUCT_PUBLISHER "####有限公司" !define PRODUCT_WEB_SITE "http://www.abcd#.com.cn" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define JDK_NAME jdk1.6.0 !define TOMCAT_NAME apache-tomcat-6.0.16 !define CAPAA_WAR_NAME ####-2010-08-02-1046.war !define JDK_PATH "D:\####\capaa-web\${JDK_NAME}.zip" !define TOMCAT_PATH "D:\####\####-web\${TOMCAT_NAME}.zip" ;定义压宿算法 ;SetCompressor lzma ;使用XP样式 XPStyle on Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" ;输出文件 OutFile "####-setup.exe" LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf" ;定义默认安装目录 InstallDir "C:\CAPAA" Icon "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" UninstallIcon "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" DirText "注意:安装路径不能包含空格或者中文,否则无法正常运行。" LicenseText "如果您接受所有协议条款,选择“我愿意”继续。您必须接受协议才能安装 $(^Name)。" ;安装协议 ;LicenseData "souquan.txt" ReserveFile "####.ini" # 预先打包文件,方便安装加速释放 ####.ini !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS # 预先打包文件,方便安装加速释放 Page custom PageInitFunc PageLeaveFunc "" Page components Page directory Page instfiles ;安装时显示详细信息 ShowInstDetails show ShowUnInstDetails show BGGradient 0000FF 000000 FFFFFF BGFont "华文中宋" 40 ;释放文件 Section "####" SectionIn RO SetOverwrite on SetOutPath "$INSTDIR" File "${TOMCAT_PATH}" SetOutPath "$INSTDIR" File "${JDK_PATH}" SetOutPath "$INSTDIR\bin" File /r "bin\*.*" SetOutPath "$INSTDIR\lib" File /r "lib\*.*" SetOutPath "$INSTDIR\war" File "war\${####_WAR_NAME}" SectionEnd ;执行bat文件 Section -Setup SetOutPath $INSTDIR ZipDLL::extractall "$INSTDIR\war\${CAPAA_WAR_NAME}" "$INSTDIR\####" ZipDLL::extractall "$INSTDIR\${TOMCAT_NAME}.zip" "$INSTDIR" ZipDLL::extractall "$INSTDIR\${JDK_NAME}.zip" "$INSTDIR" Delete "$INSTDIR\${TOMCAT_NAME}.zip" Delete "$INSTDIR\${JDK_NAME}.zip" ExecShell "open" "$INSTDIR\bin\setup.bat" " $0 $1 $2 $3 $4" "SW_SHOWNORMAL" SectionEnd #-- 根据 NSIS 脚本编辑规则,所有 Function 区段必须放置在 Section 区段之后编写,以避免安装程序出现未可预知的问题。--# Function .onInit ; !insertmacro MUI_INSTALLOPTIONS_EXTRACT "io.ini" # 初始化页面 InitPluginsDir File /oname=$PLUGINSDIR\####.ini "####.ini" FunctionEnd Function PageInitFunc InstallOptions::dialog "$PLUGINSDIR\####.ini" FunctionEnd Function PageLeaveFunc ReadINIStr $0 "$PLUGINSDIR\####.ini" "Field 7" "State" #key ReadINIStr $1 "$PLUGINSDIR\####.ini" "Field 8" "State" #jdbc ReadINIStr $2 "$PLUGINSDIR\####.ini" "Field 9" "State" #username ReadINIStr $3 "$PLUGINSDIR\####.ini" "Field 10" "State" #password ReadINIStr $4 "$PLUGINSDIR\####.ini" "Field 11" "State" #driver #MessageBox MB_OK "Password State: $0" FunctionEnd