zoukankan      html  css  js  c++  java
  • 转---B/S结构JavaEE WebApp的全自动安装包制作心得

    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

  • 相关阅读:
    python学习-10 运算符1
    python学习-9 pycharm的安装
    python学习-8 用户有三次机会登陆
    python学习-7 条件语句 while循环 + 练习题
    python学习-6 猜拳小游戏
    python学习-5 python基础-2 条件语句(if的简单用法2---elif)
    python学习-4 python基础-2 条件语句(if的简单用法1)
    python学习-3 python基础-1基础知识和解释器
    RaspBerry--解决无法用 ssh 直接以 root 用户登录
    NetWork--HTTPS 原理解析<转>
  • 原文地址:https://www.cnblogs.com/ACMer/p/3181088.html
Copyright © 2011-2022 走看看