欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-06 23:33:52
...

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

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

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

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

其中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这个文件好的,不知道是不是新系统都会缺,

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

    

 

相关标签: 服务 java