WEB 工程windows安装包制作

来源:互联网 发布:印度和中国的差距知乎 编辑:程序博客网 时间:2024/04/29 04:16
  1. 目的:J2EE web 工程部署环境:jdk1.5.0 +jboss-4.0.3SP1+mysql 5.0,通常情况下先安装jdk,配置环境变量;然后安装mysql,创建db并初始化数据;最后解压jboss,部署应用程序包。在windows下安装,客户要求能做成exe安装包,通过一步点击,完成所有的操作,以减少出错率。
  2. 实施:windows安装包制作软件工具:NSIS是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System)的缩写,它是一个免费的 Win32 安装、卸载系统。
  3. 准备工作:下载NSIS工具,准备一个文件夹(如myapp),1.将以前安装过的jdk1.5.0拷贝到myapp目录下;2.将jboss-4.0.3SP1减压到myapp目录下,从网上下一个jboss注册windows服务的文件;3.从网上下一个mysql5.0的免安装包,减压到myapp目录下;从网上找到AddPath.nsh和WriteEnvStr.nsh也放到myapp目录下(NSIS 2.45下载地址:http://www.ddxia.com/view/11509962543383.html)
  4. 安装NSIS,打开后使用“新建脚本向导”创建脚本,

     

下一步到基本信息

填写基本信息后,继续下一步,到选项页面,选择安装包需要支持的语言等


继续下一步,选择安装目录和授权文件,注意需要把授权文件栏清空



 继续下一步,选择应用程序安装文件选择


继续下一步,直到出现向导以完成页面



选择保存脚本和转化文件路径到相关路径,然后点完成,保存脚本到myapp目录

脚本全部修改完成后可以CTRL+F9执行编译脚本,会在脚本同目录下生成对应的exe安装文件,以下部分是教如何修改脚本
 
5. 脚本修改:

 在脚本的head部分增加脚本“!define ALL_USERS” ,这个变量告诉是增加所以用户的系统变量,如果不设,增加在当前用户的环境变量中。然后引用AddPath.nsh和WriteEnvStr.nsh,最后定义环境变量参数。变量定义位置如下图:


 

 在Section -Post中添加脚本让环境变量起作用,调用系统或程序api来注册服务



 

在Section uninstall 中加上下载时需要去除环境变量和注册服务脚本



 


 6.添加脚本的说明:

设置全局用户变量

 !define ALL_USERS

  引入增加变量到path的类库
!include  AddPath.nsh

引入增加变量到系统变量的类库

!include WriteEnvStr.nsh

定义环境变量参数

;Define for Environment Variables
!define JAVA_HOME "$INSTDIR\jdk1.5.0"
!define WEB_CONFIG_HOME "$INSTDIR\config"
!define JBOSS_HOME "$INSTDIR\jboss-4.0.3SP1"
!define MYSQL_HOME "$INSTDIR\MySQL"

增加环境变量参数到系统变量中

       Push JAVA_HOME
       Push '${JAVA_HOME}'
       Call WriteEnvStr
       push WEB_CONFIG_HOME
       Push '${WEB_CONFIG_HOME}'
       Call WriteEnvStr
       push JBOSS_HOME
       Push '${JBOSS_HOME}'
       Call WriteEnvStr
       push MYSQL_HOME
       Push '${MYSQL_HOME}'
       Call WriteEnvStr
       Push '${JAVA_HOME}\bin'
       Call AddToPath

注册mysql为系统自动服务并启动

       SetOutPath "${MYSQL_HOME}\"
       ExecWait "startMYSQL.cmd"

注册jboss为系统自动服务并启动

       SetOutPath "${JBOSS_HOME}\bin"
       ExecWait  "service.bat install"
       SetOutPath "${JBOSS_HOME}\bin"
       ExecWait "sc config jboss start= auto"
       SetOutPath "${JBOSS_HOME}\bin"
       ExecWait "net start jboss"

创建db并初始化

       SetOutPath "${MYSQL_HOME}\bin\"
       ExecWait "init.bat"

启动windows任务服务,添加新任务,在每天23:59分自动重启jboss服务

       SetOutPath "$INSTDIR\"
       ExecWait "sc config Schedule start= auto"
       SetOutPath "$INSTDIR\"
       ExecWait "net start Schedule"
       SetOutPath "$INSTDIR\"
       ExecWait "AT 23:59 /every:M,T,W,Th,F,S,Su net stop jboss"
       SetOutPath "$INSTDIR\"
       ExecWait "AT 00:01 /every:M,T,W,Th,F,S,Su net start jboss"


原创粉丝点击