1、要求
我们的web程序使用 tomcat6 作为应用服务器,数据库为 mysql。java的版本是jdk1.6,同时,在系统安装的时候,需要导入一些数据,这些都是我们帮助客户录入的,因为客户觉得录入太麻烦了。
目标是客户只需要运行一下EXE文件,就完成WEB系统的安装。JDK,TOMCAT,MYSQL和环境变量都要一次设置好。(只适用于WINDOW系统)
?
2、思路
既然客户要求自动安装,那么无非就是自动安装 tomcat, mysql, jdk, 我们的web应用,以及导入客户的数据。但是我们的客户对电脑完全不懂,所以,如果安装过程中,出现 tomcat 那种的“下一步”操作,是绝对不行的。最好是一气呵成,点完安装,一切ok,打开浏览器,就能访问。
图形的当然最好,不过俺还是想省点事,交流之后客户能够接受批处理文件。那么就用批处理编写安装程序。
?
3、建立项目文件夹
在C盘建立名为MyApp的文件夹,把免安装的Java、tomcat6、mysql放进去。
4、自动安装 jdk
因为 jdk 是 tomcat 的必要环境,所以先考虑这个。其实这个最简单了,拷贝一份安装过的jdk就可以了,一般 c:\programe files\java 目录里有两个目录:jdk1.6.0_12 和 jre1.6.0_12
?
5、自动安装 tomcat
这个部分非常简单,网上也有详细的资料。无非就是下载一个tomcat的免安装版本。然后修改service.bat文件,在第一行加上
set JAVA_HOME=C:\ MyApp\java\jdk1.6.0_10
6、自动安装 mysql
这部分的资料网上很多,无非是下载免安装版本的mysql。但是通常你花费点时间才发现,免安装版本的mysql里不带 my.ini 文件,没有这个文件是不能启动mysql的。从你的安装过的版本里拷贝一个出来吧,修改一下其中的配置。
basedir="C:/MyApp/MySQL/MySQL Server 5.1/"
datadir="C:/ MyApp /MySQL/MySQL Server 5.1/Data/"
(把其它地方安装后的mysql复制进来也算是免安装版的MYSQL)
?
7、安装我们的web应用以及导入数据
安装web应用太简单了,拷贝到tomcat目录下就行了。
导入数据也很简单。我们首先准备一个 init.sql。 这个文件里写上创建数据库的语句。然后放在C:\MyApp\MySQL\db目录下,其它目录也行,但文件夹名称不能有空格,否则会找不到文件。
?
8、注册MYSQL和TOMCAT的系统服务
写一个批处理文件regeditService.bat
再建一个uninstall.bat文件
9、在MyApp目录下建一个config文件夹,把regeditService.bat放进去
10、使用制作工具打包成EXE
?
别急着点生成脚本,先设置一个高级选项,点进去
首选运行是选不了regeditService.bat文件的,要自己手动输入。点击返回主菜单。然后点击生成脚本即可。
?
这个工具在CSDN的下载资源里面输入exe打包制作工具(绿色版)就能找到.
?
?
?
以打包我自己的rpss项目为例: 先将Java、Tomcat、MySQL和项目文件都复制到一个目录里面。该目录下有以下东西: [apps] - 存放项目文件 [jdk1.6.0_13] - Java的jdk文件 [MySQL-5.1] - MySql非安装版 [Tomcat-6.0.18] - Tomcat 1) 修改 Tomcat目录\conf\server.xml 中的标签<Host appBase="webaps" ...> ,将appBase指向项目所在相对路径。注意路径分割符使用“/”。 2) 编写两个批处理文件,分别为“install.bat”和“uninstall.bat”,放在目录根路径下。 install.bat内容: set JAVA_HOME=%1%\jdk1.6.0_13 uninstall.bat内容: set JAVA_HOME=%1%\jdk1.6.0_13 3) 建立Project 4) 本地化语言 5) 设置环境变量 6) 注册服务 7) 让安装完成后启动浏览器,自动打开项目 8) 反安装 9) 打包 ? ? ? ? ? 打包J2EE工程为安装文件(InstallAnywhere7.1) 现在有这样一个J2EE项目,使用tomcat + mysql 开发,开发完成后,客户要求打包成安装程序,要求客户机器在没有任何开发环境下也能运行该项目 打包步骤如下: 1. 准备工具: 2. 将J2EE工程打包为.war,放到tomcat的webapps中 3. 建立一个文件夹,取名为"服务",在该文件夹下建立2个批处理文件,分别取名为:"启动服务.bat" 和"停止服务.bat" 4. 打开installAnywhere,开始本次打包的关键步骤 ???? B 在install中,addAction 选择"Create Alias,Link,Shortcut",在Path选项中选择"Shortcut's Destionation Folder" 表示安装到"开始"菜单中去,点击Choose Target 选择"服务"下"启动服务.bat" ???? E 在install中,addAction 选择"Modify Text File - Single File" 点击Choose Target 选择"服务"文件夹下"停止服务.bat"文件,选择Prepend,写入 ???? F 在Post-install中,addAction 选择"Modify Text File - Single File" 点击Choose Target 选择tomcat-5.0.28/bin下service.bat,选择Prepend,写入 ???? G 在Post-install中,addAction 选择"Modify Text File - Single File" 点击Choose Target 选择mysql下my.ini(如果没有可以google一个),选择Prepend,写入 ???? H 在Post-install中,addAction 选择"Execute Script/Batch file" 在Comment中取名为"注册MySQL服务",在Script中写入 ???? I 在Post-install中,addAction 选择"Execute Script/Batch file" 在Comment中取名为"注册TOMCAT服务",在Script中写入????????? ???? J 在Post-Uninstall中,addAction 选择"Execute Script/Batch file" 在Comment中取名为"注销MySQL服务",在Script中写入 ???? K 在Post-Uninstall中,addAction 选择"Execute Script/Batch file" 在Comment中取名为"注销TOMCAT服务",在Script中写入 ? 转自:http://hi.baidu.com/annleecn/blog/item/50b3a4501c0240828d543051.html
set CATALINA_HOME=%1%\Tomcat-6.0.18
call %1%\Tomcat-6.0.18\bin\service install Tomcat
call %1%\MySQL-5.1\bin\mysqld --install MySQL
net start MyTomcat
net start MySQL
set CATALINA_HOME=%1%\Tomcat-6.0.18
net stop Tomcat
net stop MySQL
call %1%\Tomcat-6.0.18\bin\service remove Tomcat
call %1%\MySQL-5.1\bin\mysqld --remove MySQL
打开InstallAnywhere 2009 Enterprise,建立Baisc Project Template,然后选择Advanced Designer,设置Title, Name等。
菜单Project>Locales>,选择需要的本地化语言。
菜单Install>,按钮Add Action...>Set System Environment Variable>Add>,设置JAVA_HOME和CATALINA_HOME两个系统环境变量。
其中$USER_INSTALL_DIR$表示用户选择的安装路径。
菜单Post-Install>,按钮Add Action...>Execute Command>Add>,在安装完成后执行install.bat,注册Tomcat和MySQL服务。
其中Command Line: cmd /c $USER_INSTALL_DIR$\install.bat $USER_INSTALL_DIR$。
cmd /c表示执行指定的命令并中断。
$USER_INSTALL_DIR$是传递给install.bat中%1%的参数。
并且,选中Options中的3个选项。
将该Execute Command移动到Panel: Install Complete前面。
菜单Post-Install>,按钮Add Action...>Launch Default Browser>Add>
在Other URL: 填入项目地址 http://localhost:7777/rpss
讲该Launch Default Browser移动到Panel: Install Complete后面。
菜单Pre-Uninstall>,按钮Add Action>Execute Command>Add>。
Command Line: cmd /c $USER_INSTALL_DIR$\uninstall.bat $USER_INSTALL_DIR$
将该Execute Command移动到第一个。
选中Options中的3个选项。
菜单Build>,按钮Build Project>,等待InstallAnywhere打包完成。
完成以后,按钮Open in Explorer>,文件夹Web_Installers>InstData>Windows>VM>,setup.exe就是完成的安装文件包。
有这几个问题需要解决:注册MySQL服务,打开MySQL和tomcat服务,解决方法如下:
tomcat5.0.28解压缩版(http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28-embed.zip)
mysql5.0.22免安装版(http://downloads.mysql.com/archives/mysql-5.0/mysql-noinstall-5.0.22-win32.zip)
installAnywhere7.1(ftp://download.nbjsz.com/programdev/installanywhere.rar)注册码去google下
jdk(使用安装好的就行)
???? 0 选择"Create New Project","Basic Project Template",点击"Save as"选择最后的保存路径,以及项目名称。next,next
????
???? A 添加文件,将tomcat-5.0.28,mysql-5.0.22,jdk1.5.0_15,服务 这四个文件夹添加进去,next,Advanced Designer
????
???? C 同B,对"服务"下"停止服务.bat"做相同操作。
????
???? D 在install中,addAction 选择"Modify Text File - Single File" 点击Choose Target 选择"服务"文件夹下"启动服务.bat"文件,选择Prepend,写入
net start mysql??
net start tomcat
net stop tomcat
net stop mysql??
?? set JAVA_HOME=$USER_INSTALL_DIR$\jdk1.5.0_15
?? set CATALINA_HOME=$USER_INSTALL_DIR$\tomcat-5.0.28???? ??
?? [mysqld]??
?? #设置basedir指向mysql的安装路径??
?? basedir=$USER_INSTALL_DIR$\mysql-5.0.22??
?? datadir=$USER_INSTALL_DIR$\mysql-5.0.22\data
?? default-character-set = UTF8
?? [WinMySQLAdmin]
?? Server=$USER_INSTALL_DIR$\mysql-5.0.22\bin\mysqld-nt.exe
?? user=root
?? password=root
注意:首先要删除my.ini文件中的相应属性的设置
????????? Call "$USER_INSTALL_DIR$\mysql-5.0.22\bin\mysqld-nt" -remove??
????????? Call "$USER_INSTALL_DIR$\mysql-5.0.22\bin\mysqld-nt" -install
?? Call "$USER_INSTALL_DIR$\tomcat-5.0.28\bin\service.bat" remove tomcat
?? Call "$USER_INSTALL_DIR$\tomcat-5.0.28\bin\service.bat" install tomcat
?? Call net stop mysql
?? Call "$USER_INSTALL_DIR$\mysql-5.0.22\bin\mysqld-nt" -remove
?? Call net stop tomcat
?? Call "$USER_INSTALL_DIR$\tomcat-5.0.28\bin\service.bat" remove tomcat????
???
??? 注意:创建"Modify Text File - Single File"的时候把下面的"Create backup"取消。
?? 安装的时候,整个安装路径上不能有空格的出现。不然就找不到JAVA_HOME,和CATALINA_HOME。
5. 开始打包,完成!