JavaEE的Web应用程序如今已大行其道,但其安装、配置、部署却一直繁琐无比,客观上阻碍了Web应用程序更大规模的推广和应用。因此,开发方制作一个集JDK、Web中间件、开源数据库的全自动安装程序很有必要。

本人经过多日的艰苦摸索而终于成功搞定一个具备上述功能的全自动安装程序。说明如下:

安装程序制作工具:Installshield 12 Premier,因为没银子只好用破解版:),简称IS12;

JSDK:Java 6.0;

应用服务器:Tomcat 6.0 解压版。webapps目录下已放好了要发布的应用程序;

数据库:MySQL 5.0 解压版;

本安装程序具备的特点如下:

1.不需客户机安装JVM,只需他有Windows 2000/XP/2003/Vista中一种操作系统;

2.安装完成后数据库、应用服务器自动注册为系统服务,并自动启动。并且机器重启后仍然有效;

3.对客户机的改动很小,不改变用户机器的环境变量、注册表;卸载后干净、不留残余。

4.安装完成后,打开IE即可立即访问Web应用程序。

制作过程粗略描述如下:

1.建立一个目录,存放你要用来打包的目录和文件,如“MyProject”;

2.首先在本机上安装JDK,然后把安装好的JDK拷贝到MyProject目录下,把JDK的目录名改为“jsdk”;

3.同理,把已部署好Web应用程序的免安装版Tomcat和MySQL也拷贝到MyProject目录下,并分别把目录名改为“tomcat”和“mysql”;(这里的目录都不带版本号是为了增加安装程序的通用性)

4.为使tomcat摆脱JVM的系统环境变量、并使用本目录下的JSDK,需改变其bin目录下的catalina.bat和service.bat两个批处理文件,使之指向指定的JAVAHOME和JVM;具体不再赘述;

5.用IS12建立一个InstallScript MSI Project;(注意:不要用Basic MSI Project,那是徒劳无功)

6.在新建立的工程文件里把上述已存放好的jsdk、tomcat、mysql三个目录都加到工程里,注意勾上"subfolder"选项,把子目录中的文件也加进来,很简单不再赘述;

7.为了实现安装完成后mysql和tomcat的注册服务、自动启动;以及卸载程序时的停止服务、卸载服务,需要写InstallScript脚本(本人起初看着那些脚本就发怵,但最终还是不得不写脚本了事)。关键是重写OnFirstUIBefore(安装程序开始运行时调用)、OnInstallFilesActionAfter(安装结束后调用)、OnUninstall(卸载开始时调用)这几个库函数。重写后不必加到Custom Action的Sequences里,安装程序会自动在相应时候调用。

8.手工写下列函数:动态生成my.ini配置文件(mysql要注册成系统服务就必须依靠此配置文件。存放目录在%mysql%下);注册并启动mysql服务;注册并启动tomcat服务(上述两个函数放在安装程序完成后调用);停止并卸载停止mysql服务;停止并卸载tomcat服务(上述两个函数放在卸载开始时调用);

9.上述工作完成后就基本大功已告成。但还有如下几个细节不能忽视:

10.许可协议:首先自己写一个名为License.txt的许可协议文件,然后在Behavior and Logic|Support Files/Billboards|Language Independent中加入该License.txt;并在OnFirstUIBefore函数中调用;

11.不赞成建立开始菜单中的卸载快捷方式。因为本人做过实验,运行卸载快捷方式时,OnUninstall函数不会被调用,不知怎么回事,也懒得去仔细研究了。卸载程序可以放在控制面板中的“添加删除程序”中。

12.很关键的一点:把Install Information|General Information|Project Properties中,Enable Maintenance选为No,否则OnUninstall函数将不会被调用

大体如上述过程,此时一个全自动安装程序制作完毕,若有细节遗漏,请大家自己研究调试。

如还有不清楚的或想要安装程序的源工程或源代码的,欢迎给本人发email索取:

分享到: http://blog.csdn.net/xuxy03/article/details/2495365

转---B/S结构JavaEE WebApp的全自动安装包制作心得的更多相关文章

  1. hadoop安装包的目录结构

    初次接触Hadoop,了解了Hadoop安装包的目录结构,和大家分享下: bin:Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理 ...

  2. Solr 01 - 什么是Solr + Solr安装包目录结构说明

    目录 1 Solr概述 1.1 Solr是什么 1.2 Solr与Lucene的区别 2 Solr文件说明 2.1 Solr的目录结构 2.2 其他常用概念说明 2.3 创建基础文件目录 2.4 so ...

  3. 怎样使用在线Webapp生成器生成安装包

    在这篇文章中,我们来介绍怎样使用在线(online)的Webapp生成器来生产在Ubuntu手机或模拟器中能够安装的click安装包. Webapp生成器的地址:https://developer.u ...

  4. 使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包(转)

    之前一直都没涉及到打包安装方面的东西,都是另一个同事负责的,使用的工具(installshield)也比较高大上一点,可是后来他离职以后接受的同事也只能是在这个基础上做个简单的配置,然后打包,可是现在 ...

  5. 使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包

    之前一直都没涉及到打包安装方面的东西,都是另一个同事负责的,使用的工具(installshield)也比较高大上一点,可是后来他离职以后接受的同事也只能是在这个基础上做个简单的配置,然后打包,可是现在 ...

  6. 带你认识spark安装包的目录结构

    福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑         Java全栈大联盟   ...

  7. VC 2005 解决方案的目录结构设置和管理

    VC 2005 解决方案的目录结构设置和管理   Roger (roger2yi@gmail.com)   一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于 ...

  8. VS解决方案的目录结构设置和管理

    一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档.除此以外,根据项目的需求,还会使用一些第三方的库.   所以为解决 ...

  9. 基于InstallShield2013LimitedEdition的安装包制作

    在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不 ...

随机推荐

  1. sass入门教程

    一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 二.安装和使用 2.1 安装 SASS是Ruby语言写的,必须先 ...

  2. canvas 时钟+自由落体

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. ios项目中安装和使用CocoaPods

    CocoaPods是什么? http://code4app.com/article/cocoapods-install-usage http://blog.csdn.net/jjmm2009/arti ...

  4. Poj1743 (后缀数组)

    #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using ...

  5. “iTunes无法连接iPad,因为设备超时”解决办法

    注意一般要两个授权才会连接成功,一是在电脑上的iTunes登陆apple账户,账户授权电脑:二是ipad上信任Trust电脑连接ipad,如果没有重启iPad试试. 法1. 更新iTunes,重启电脑 ...

  6. 如何让WEBAPI 能够进行跨越访问

    WebApi域名 http://localhost:11565 当部署好WebApi时,直接通过浏览器进行本地访问 这里是GET请求,此时访问成功 在部署一个Web,域名:http://localho ...

  7. 职工工资管理系统 --C语言

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define NUM 1000 void ente ...

  8. strlcpy和strlcat

    strncpy 等主要的问题还是虽然不会溢出,但是满了就不给缓冲区添加0结束符了,以前在项目里面自己还写了个 safe_strcpy 现在发现早就有了 http://blog.csdn.net/lin ...

  9. java 配置环境变量

    使用java编程首先需要安装jdk,然后还需要给你的电脑配置环境变量,下面就用图文演示如何配置环境变量: 1.右键我的电脑 -> 属性 2.点击“高级系统设置” 3.点击“环境变量” 4.在系统 ...

  10. 使用Crowd2.7集成Confluence5.3与JIRA6.1,并安装、破解及汉化,实现单点登录【原创】

      鉴于目前没有针对Crowd.Confluence.Jira安装.集成和破解最新的方法,总结今天安装.破解及集成的经验,编写此文,方便大家进行配置也方便自己以后参考.此文参考多篇破解文章,并经过作者 ...