一. 准备工作
下载nsis相关工具包,点击此下载
1. 安装程序:nsis-2.46-setup.exe
2. 编辑程序:cnisedit203.exe
3. 帮助文档:NSIS205帮助文档.rar
4. 第三方库:ExecCmd.dll、AddPath.nsh、WriteEnvStr.nsh
二. 安装nsis-2.4.6-setup.exe
1. 安装完后,右键nsi格式的文件,如果没有出现Compile NSIS Script和Compile NSIS Script(Choose Compressor)两个选项,
可尝试右键nsi格式文件---属性---常规---更改打开方式为记事本。
2. 将ExecCmd.dll复制到"NSIS安装路径\Plugins"下
三. 制作nsi打包脚本:erp1.0.0-jdk1.6.0_21&tomcat6.0.33.nsi
images/loading.gif' data-original="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" />
1 ;-------------------------------常量定义------------------------------- 2 ;定义产品名称常量 3 !define PRODUCT_NAME "办公自动化系统" 4 5 ;定义产品版本常量 6 !define PRODUCT_VERSION "1.0.0" 7 8 ;资源路径常量 9 !define RESOURCE_CATALOG "resource" 10 11 ;目标路径常量 12 !define TARGET_CATALOG "target" 13 14 ;定义JDK资源存放路径常量 15 !define JDK_RESOURCE_CATALOG "jdk1.6.0_21" 16 17 ;定义TOMCAT的资源存放路径常量 18 !define TOMCAT_RESOURCE_CATALOG "apache-tomcat-6.0.33" 19 20 ;定义JAVA_HOME常量常量 21 !define JAVA_HOME "$INSTDIR\${JDK_RESOURCE_CATALOG}" 22 23 ;定义CATALINA_HOME常量常量 24 !define CATALINA_HOME "$INSTDIR\${TOMCAT_RESOURCE_CATALOG}" 25 26 ;定义反安装键值常量 27 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" 28 29 ;定义反安装ROOT键值常量 30 !define PRODUCT_UNINST_ROOT_KEY "HKLM" 31 32 33 34 ;------------------------------第三方库导入------------------------------- 35 !include "MUI.nsh" 36 37 ;导入打包程序第三方库 38 !include "third\AddPath.nsh" 39 !include "third\WriteEnvStr.nsh" 40 41 42 43 ;------------------------------图标定义------------------------------- 44 45 !define MUI_ABORTWARNING 46 !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico" 47 !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico" 48 49 50 51 ;------------------------------安装步骤向导界面定义------------------------------- 52 53 ;欢迎页面 54 !insertmacro MUI_PAGE_WELCOME 55 56 ;授权页面 57 !insertmacro MUI_PAGE_LICENSE "..\${RESOURCE_CATALOG}\licence.txt" 58 59 ;目录选择页面 60 !insertmacro MUI_PAGE_DIRECTORY 61 62 ;安装页面 63 !insertmacro MUI_PAGE_INSTFILES 64 65 ;完成页面 66 !insertmacro MUI_PAGE_FINISH 67 68 ;反安装页面 69 !insertmacro MUI_UNPAGE_INSTFILES 70 71 ;语言选择 72 !insertmacro MUI_LANGUAGE "SimpChinese" 73 74 75 76 ;------------------------------打包后安装文件名/输出路径/安装路径定义------------------------------- 77 78 ;产品名称及产品版本 79 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 80 81 ;输出文件名称 82 OutFile "..\${TARGET_CATALOG}\${PRODUCT_NAME}-${PRODUCT_VERSION}.exe" 83 84 ;程序安装路径 85 InstallDir "$PROGRAMFILES\${PRODUCT_NAME}-${PRODUCT_VERSION}" 86 87 ;显示安装进度 88 ShowInstDetails show 89 90 ;显示反安装进度 91 ShowUnInstDetails show 92 93 94 95 ;------------------------------提示对话框定义------------------------------- 96 97 ;安装前提示 98 Function .onInit 99 MessageBox MB_YESNO "请先确认该电脑上没有安装JDK、Apache Tomcat软件。是否继续?" IDYES NoAbort100 Abort101 NoAbort:102 FunctionEnd103 104 105 ;反安装提示106 Function un.onInit107 MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您确实要完全移除 $(^Name) ,其及所有的组件?" IDYES +2108 Abort109 FunctionEnd110 111 112 113 ;------------------------------菜单以及注册表信息注册-------------------------------114 115 ;菜单注册116 Section -AdditionalIcons117 SetOutPath $INSTDIR118 CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"119 CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk" "$INSTDIR\uninst.exe"120 SectionEnd121 122 123 ;注册表注册124 Section -Post125 WriteUninstaller "$INSTDIR\uninst.exe"126 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"127 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"128 SectionEnd129 130 131 132 133 ;------------------------------资源复制打包-------------------------------134 135 ;将RESOURCE_CATALOG下的所有文件资源拷贝至安装目录下136 Section "RESOURCE_COPY" SEC01137 sectionin 1138 sectionin RO139 SetOutPath "$INSTDIR\${RESOURCE_CATALOG}"140 SetOverwrite try141 File /r "..\${RESOURCE_CATALOG}\*.*"142 SectionEnd143 144 145 146 147 ;------------------------------环境变量注册及反注册-------------------------------148 149 ;注册环境变量150 Section -EnvironmentVariables151 ;JDK安装根路径152 Push JAVA_HOME153 Push '${JAVA_HOME}'154 Call WriteEnvStr155 Push '${JAVA_HOME}\bin'156 Call AddToPath157 158 ;TOMCAT安装根路径159 Push CATALINA_HOME160 Push '${CATALINA_HOME}'161 Call WriteEnvStr162 Push '${CATALINA_HOME}\bin'163 Call AddToPath164 165 SectionEnd166 167 168 169 ;反注册环境变量170 Function un.removeEnvPath171 Push JAVA_HOME172 Call un.DeleteEnvStr173 Push '${JAVA_HOME}\bin'174 Call un.RemoveFromPath175 176 Push CATALINA_HOME177 Call un.DeleteEnvStr178 Push '${CATALINA_HOME}\bin'179 Call un.RemoveFromPath180 181 FunctionEnd182 183 184 185 ;------------------------------服务的安装/启动/停止/反安装-------------------------------186 187 ;安装并启动后台服务188 Section -Service189 Call InstallTomcatService190 191 Call startTomcatService192 SectionEnd193 194 195 ;安装TOMCAT服务196 Function InstallTomcatService197 SetOutPath "$INSTDIR\${TOMCAT_RESOURCE_CATALOG}\bin"198 ExecCmd::exec /TIMEOUT=10000 "service.bat install"199 FunctionEnd200 201 202 ;启动TOMCAT服务203 Function startTomcatService204 SetOutPath "${CATALINA_HOME}\bin"205 ExecCmd::exec /TIMEOUT=120000 "net start Tomcat6"206 FunctionEnd207 208 209 ;停止TOMCAT服务210 Function un.stopTomcatService211 ExecCmd::exec /TIMEOUT=120000 "net stop Tomcat6"212 FunctionEnd213 214 215 ;删除TOMCAT服务216 function un.removeTomcatService217 SetOutPath "$INSTDIR\${TOMCAT_RESOURCE_CATALOG}\bin"218 ExecCmd::exec /TIMEOUT=120000 "service.bat remove"219 functionend220 221 222 223 ;------------------------------反安装-------------------------------224 225 Section Uninstall226 ExecCmd::exec /TIMEOUT=120000 "taskkill /im tomcat6.exe /f"227 228 Call un.stopTomcatService 229 230 Call un.removeTomcatService 231 232 Delete "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall.lnk"233 RMDir "$SMPROGRAMS\${PRODUCT_NAME}"234 235 Delete "$INSTDIR\uninst.exe"236 RMDir /r "$INSTDIR"237 238 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"239 240 Call un.removeEnvPath241 SetAutoClose true242 SectionEnd
View Code
四. 编译前准备
1. 新建resource、target、script三个文件夹
2. 将jdk1.6.0_21、tomcat6.0.33放置到resource文件夹下
3. 将erp1.0.0-jdk1.6.0_21&tomcat6.0.33.nsi放置到script文件夹下
4. 在script下新建third文件夹,将AddPath.nsh、WriteEnvStr.nsh放置到该文件夹下
五. 编译nsi脚本
右键nsi脚本,选择Compile NSIS Script进行编译,最终在target目录下生成exe安装包。
原标题:Nsis制作启动Tomcat服务的exe安装包教程
关键词:tomcat