Tomcat、MySQL、JDK打包为exe,一键安装,使用InnoSetup
摘要
需求:在纯净Windows系统上实现web应用的一键安装部署
分析:javaweb程序运行需要Tomcat、MySQL,以及JDK环境。还包括程序源码及数据库文件。所以需要自动化的去完成环境的安装以及程序部署。
实现:InnoSetup可以根据.iss脚本文件打包Tomcat、MySQL、JDK的安装文件,并执行定义好的Windows批处理脚本(.bat文件),完成安装过程。
一、准备及注意事项
Inno Setup 下载地址 http://www.jrsoftware.org/isdl.php
Tomcat、MySQL、JDK都需要使用免安装版,直接解压的那种,JDK免安装版直接把你安装好的JDK复制一份就可以。Tomcat的免安装版需要下载包含有service.bat文件的,有些小版本是没有service.bat文件的。
mysql根目录下可能没有.ini文件,自己去网上找一份就可或者使用我在后面给出的代码。.ini文件会在初始化mysql中用到
JDK,将安装完成的java文件夹复制一份即可
.bat文件应该用ASCII编码方式,在记事本中用ANSI编码方式保存,否者会出现乱码。下列bat文件中 rem 关键词表示注释,请在实际操作时将我写的rem中文注释删除掉,不然也可能会出现乱码。
二、应用目录结构
新建一个文件夹,将jdk,tomcat,mysql文件夹放进来,在这里,我在D盘下新建了一个test文件夹用来存放项目
1、将tomcat、mysql文件夹放在test目录下
2、将jdk文件夹放在tomcat的bin目录下
三、批处理脚本
1、autoInstallJDK.bat
第一步,autoInstallJDK.bat脚本是用来配置JDK环境的,使用脚本自动化设置 JAVA_HONE,CLASSPATH变量,以及在系统环境变量中path中添加地址。代替我们手工配置java环境变量。autoInstallJDK.bat文件放在java/jdk/bin目录下
autoInstallJDK.bat
@echo off
echo ------begin----
rem 返回上一级目录,即jdk根目录
cd ..
echo "%~dp0"
echo "%cd%"
set jdkpath=%cd%
echo %jdkpath%
rem 设置JAVA_HOME环境变量
setx JAVA_HOME "%jdkpath%" -m
rem 设置CLASSPATH环境变量
setx CLASSPATH ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar" -m
echo %Path%
echo %Path%|find /i "%java_home%" && set IsNull=true || set IsNull=false
echo %IsNull%
if not %IsNull%==true (
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%Path%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin" /f
rem 追加path变量
setx Path "%%JAVA_HOME%%\bin;%Path%"
)
exit
2、mysql_init.bat
jdk配置好了就该收拾mysql了,要对mysql进行那些操作请参考博客https://blog.youkuaiyun.com/liuhaomatou/article/details/52576162#t2
在mysql目录下新建data文件夹,执行mysql_init.bat中第一步操作时会在data目录下自动生成一系列文件,所以要求这个data文件夹必须是空白的,否者报错。然后在mysql目录下新建sql文件夹,用来存放你的数据库sql文件(里面要有建库的sql内容)。然后在搞一份my.ini文件放在mysql目录下,这份文件里有初始化mysql的信息。
再来看下现在的mysql目录