Inno Setup 打包java环境(tomcat+jdk+redis+mysql)生成exe安装程序

倾然丶 夕夏残阳落幕 提交于 2020-08-19 20:36:03

记录通过Inno Setup Compiler打包tomcat+redis+jdk+mysql成exe文件,进行傻瓜式安装

1.安装下载inno setup软件,自行搜索下载安装

2.准备安装目录,我的目录如下(单词拼写错误忽略)

其中tomcat jdk mysql需要去下载免安装版本,发布的项目放入apache-tomcat-8.5.43\webapps下

这几个目录下的配置文件不用修改(如自己项目特殊自行修改,比如tomcat端口之类的)

3.打开安装好的inno setup软件,自行百度创建一个项目

4.mtainit.iss文件内容(主要)

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "MTA"
#define MyAppVersion "1.0"
#define MyAppPublisher "Nonstandard Automation Technology Co., Ltd"
#define MyAppURL "http://www.ronstein.com"
#define MyAppExeName "MTA.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9E4A22DD-5CEA-41A4-B236-5B3A040A9B5B}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=C:\tomcat
SetupIconFile=D:\onekeyinstell\install\favicon.ico
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename=MTAsetup
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

; 安装文件
[Files]
; 安装部署的源文件路径
Source: "D:\onekeyinstell\install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

; 快捷键
[Icons]
Name: "{commondesktop}\MTA"; Filename: http://localhost:8080/kyo-api ;IconFilename : D:\onekeyinstell\install\favicon.ico

; 程序安装成功后执行脚本
[Run]    
Filename: "{app}\install.bat";     

;程序御载后执行脚本

[UninstallRun]
Filename: "{app}\uninstall.bat";

 

大部分为自动生成的,其中修改的有

(1).DefaultDirName=C:\tomcat   默认安装位置

(2).SetupIconFile=D:\onekeyinstell\install\favicon.ico 安装图标

(3).OutputBaseFilename=MTAsetup   exe的文件名

(4).[Files] [Icons][Run][UninstallRun]部分  代码中有解释

5.install.bat文件内容(主要)重中之重

先贴代码

@echo off
title 软件配置安装中,请不要手动关闭
color 0a
echo 配置安装环境中...
setx /M JAVA_HOME "%~dp0%jdk1.8.0_171"
setx /M MYSQL_HOME "%~dp0%mysql-5.7.22-winx64"
setx /M REDIS_HOME "%~dp0%Redis-x64-3.0.501"
setx /M CATALINA_HOME "%~dp0%apache-tomcat-8.5.43"
setx /M CLASS_PATH ".;%%JAVA_HOME%%\lib;"
setx /M PATH  "%PATH%;%%JAVA_HOME%%\bin;%%MYSQL_HOME%%\bin;%%TOMCAT_HOME%%\bin;%%REDIS_HOME%%"


echo 环境变量配置成功

cd "%~dp0%"

echo 开始安装数据库
cd mysql-5.7.22-winx64
bin\mysqld.exe install
bin\mysqld.exe --initialize-insecure --user=mysql
net start MySQL
sc config MySQL start= auto
echo 数据库启动中...
ping -n 3 127.1>nul
echo 初始化数据库...
bin\mysqladmin.exe -u root password 123456

echo 创建用户mes
bin\mysql.exe -u root -p123456 < sqlfile\createuser.sql
echo 初始化数据库表
bin\mysql.exe -u mes -p123456 < sqlfile\mes-createsql.sql
bin\mysql.exe -u mes -p123456 < sqlfile\procedure.sql
cd ..
echo 数据库安装完成

echo 开始安装缓存服务
cd Redis-x64-3.0.501
redis-server.exe --service-install
echo 缓存服务启动中
redis-server.exe --service-start
ping -n 3 127.1>nul
cd ..
echo 缓存服务安装完成

echo 应用服务安装

setlocal

set "CATALINA_HOME=%~dp0%apache-tomcat-8.5.43"
set "JAVA_HOME=%~dp0%jdk1.8.0_171"

call apache-tomcat-8.5.43\bin\service.bat install


echo 开始启动应用服务
sc config Tomcat8 start= auto
net start Tomcat8
echo 安装完成
ping -n 3 127.1>nul

(1)第一部分是配置环境变量,就是我们平时我的电脑--属性--高级系统设置里面的

(2)然后数据库发布为服务

主要的一句是:bin\mysqladmin.exe -u root password 123456 

插入一个点  password 123456代表设置密码   -p123456代表使用这个密码 -p后不要跟空格 切记

mysql安装好后root密码是空的  此句就是设置root密码的 123456随你改

然后是创建我要的用户

其中createuser.sql内容如下,如果使用默认的root用户 应该不需要执行此方法

use mysql
CREATE USER mes IDENTIFIED BY '123456';
grant all privileges on *.* to mes identified by '123456' with grant option;
SET GLOBAL event_scheduler = ON;

创建我要用的用户名密码,然后授权,最后一句是我用到了事件,需要开启一下,

再后面的mes-createsql.sql和procedure.sql都是创建库表和存储过程的,自己写

(3)redis发布服务 这里最简单 一遍过 也不用修改什么

(4)tomcat的配置 

一定一定要加
setlocal

set "CATALINA_HOME=%~dp0%apache-tomcat-8.5.43"
set "JAVA_HOME=%~dp0%jdk1.8.0_171"

这三行,最开始的setx /M配置永久环境变量,需要cmd重启才有效,所以此处需要设置一个临时变量,供后面的service.bat调用

我在这个坑里掉了很久,好久才找到这个临时变量的解决方法(对脚本不熟悉)

最后的几句常规启动tomcat不解释

6.uninstall.bat文件内容(我就没打算让他卸载,所以随便写了下,基本没测试过此卸载,仅供参考)

参考如下

@echo off
title 软件正在卸载中,请不要关闭
color 0a
echo 停止并删除应用服务
net stop Tomcat9
sc delete Tomcat9
echo 停止并删除数据库
net stop MySQL
sc delete MySQL
echo 停止并删除缓存服务
Redis-x64-3.0.501\redis-server.exe --service-stop
Redis-x64-3.0.501\redis-server.exe --service-uninstall
echo 删除环境变量
wmic ENVIRONMENT where "name='CLASS_PATH'" delete
wmic ENVIRONMENT where "name='TOMCAT_HOME'" delete
wmic ENVIRONMENT where "name='REDIS_HOME'" delete
wmic ENVIRONMENT where "name='MYSQL_HOME'" delete
echo 删除成功

最后使用inno 生成exe就行了,在Output中,然后就是到新电脑上下一步下一步就行了

在安装中碰到一个缺dll的错误  我是下载安装了vcredist_x64.exe这个文件好的,不知道是不是新系统都会缺,

后面测试如果都缺   考虑要把这个文件也打包进去

    

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!