Inno Setup 6一键打包Spring Boot + Redis + mysql + JDK项目

简介

将java项目打包在windows系统上运行,spring boot+redis+mysql+jdk(亲测,已成功)
笔者将环境和jar包分开打成两个exe文件进行打包,便于后期项目的迭代更新不会影响到项目的环境

Inno Setup

下载

	需要使用Inno Setup 工具进行打包
	下载地址:[官网地址](https://jrsoftware.org/isinfo.php)
	笔者使用的是6.1.2版本

在这里插入图片描述

	打包成功后会将.exe写入到此文件夹中

配置

	新建.iss文件

在这里插入图片描述

	笔者将项目环境放在D:\project\tool目录下
	jar包和logo图放在D:\project\park目录下

环境的iss文件

在这里插入图片描述

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppId "hytc.jar" 
#define MyAppName "项目运行环境"
#define MyAppVersion "1.0"
#define MyAppPublisher "Nonstandard Automation Technology Co., Ltd"
#define MyAppURL "http://localhost:8080"
#define MyAppExeName "hytc.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={#MyAppId}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=D:\park
SetupIconFile=D:\project\park\favicon.ico
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename={#MyAppName}
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:\project\tool\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
; 快捷键
;[Icons]
;Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}";
 
; 程序安装成功后执行脚本
[Run]  
Filename: "{app}\init-windows_dllFiles.bat";  
Filename: "{app}\install.bat";
Filename: "{app}\redis\redis_x64\init-redis.bat";
Filename: "{app}\redis\redis_x64\start-redis.bat";
 
;程序御载后执行脚本
 
[UninstallRun]
Filename: "{app}\unload.bat";
 

jar包的iss文件

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppId "hytc.jar" 
#define MyAppName "智慧停车"
#define MyAppVersion "1.0"
#define MyAppPublisher "Nonstandard Automation Technology Co., Ltd"
#define MyAppURL "http://127.0.0.1:10086"
#define MyAppExeName "hytc.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={#MyAppId}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=D:\park
SetupIconFile=D:\project\park\favicon.ico
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename={#MyAppName}
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:\project\park\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
; 快捷键
[Icons]
;Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}";
Name: "{commondesktop}\{#MyAppName}"; Filename: http://127.0.0.1:10086 ;IconFilename : {app}\favicon.ico
 
; 程序安装成功后执行脚本
[Run]  
Filename: "{app}\source\init-park.bat"; 
Filename: "{app}\start-park.bat"; 
 
;程序御载后执行脚本
 
[UninstallRun]
Filename: "{app}\unload.bat";
 

环境

下载redis+jdk+mysql

	笔者下载的全是绿色免安装的,直接去官网下载即可

在这里插入图片描述

脚本制作

初始化jdk和mysql的脚本

位置:D:\project\tool\install.bat

@echo off
title 软件配置安装中,请不要手动关闭
color 0a
echo 配置安装环境中...
setx /M JAVA_HOME "%~dp0%jdk/JDK8"
setx /M MYSQL_HOME "%~dp0%mysql\mysql-5.7.23-winx64"
setx /M REDIS_HOME "%~dp0%redis\redisbin_x64"
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\mysql-5.7.23-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 777777
 
echo 初始化数据库表
bin\mysql.exe -u root -p777777 < initsql\hytcV2.sql
echo 数据库安装完成
 
 
echo 安装完成
ping -n 3 127.1>nul

安装注册成功后也一起将数据库也初始化了
设置数据库的密码
bin\mysqladmin.exe -u root password 777777
-p:使用此密码,初始化数据库hytcV2.sql是sql语句,需要自己写,目录:D:\project\tool\mysql\mysql-5.7.23-winx64\initsql\hytcV2.sql
bin\mysql.exe -u root -p777777 < initsql\hytcV2.sql
是
业务有数据库定时任务需要执行
在安装目录新建my.ini文件

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
# basedir=D:\\project\\tool\\mysql\\mysql-5.7.23-winx64
# 允许最大连接数
max_connections=500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 开启定时器
event_scheduler = on

初始化redis脚本


init-redis.bat
位置:D:\project\tool\redis\redis_x64

@echo off
redis-server --service-install
redis.windows-service.conf --loglevel verbose

start-redis.bat

@echo off
net start Redis

在redis.windows-service.conf 文件中加入daemonize yes
redis的脚本很简单,就是将redis先注册为服务,在启动

下载并安装运行软件所需要的dll文件(这些文件正常来说是没有的,除非你以前装过,否则会报错)

dll文件下载地址:文章底部链接

创建自动安装dll文件的脚本init-windows_dllFiles.bat

start /wait %cd%\windows_dllFiles.exe /q /norestart
exit

至此,环境配置完成

项目

目录结构

在这里插入图片描述

WinSw

用途:使用Spring Boot开发的Web项目,打包生成了一个jar包,部署在Windows服务器中,设置为开机启动
下载地址:GitHup
将Git Hub中下载的WinSW.NET4.exe及springboot项目的jar包放在同一个文件夹中
新建一个xml文件放在winsw同级目录
将winsw执行程序跟xml改成同样的名字

xml内容

<service>
     <id>park</id>
     <name> park </name>
     <description>This is park service.</description>
     <env name="JAVA_HOME" value="%JAVA_HOME%"/>
     <executable>java</executable>
     <arguments>-Xms1500m -Xmx1500m -Dfile.encoding=UTF-8 -jar "%BASE%\park.jar" --server.port=10086</arguments>
     <startargument>-Dfile.encoding=UTF-8</startargument>     
     <startmode>Automatic</startmode>  
     <logpath>%BASE%\log</logpath>
     <log mode="roll-by-time">
  	<pattern>yyyyMMdd</pattern>
     </log>
 </service>

“roll-by-time” 代表日志按照’标签中的格式生成

init-park.bat 初始化项目脚本

位置:D:\project\park\source\init-park.bat

echo -------park stop---------
net stop park
echo -------park delete-------
sc delete park
echo -------park begin--------
park.exe install
echo -------park end------------------

考虑到迭代更新,所以先将服务停掉删除,在安装服务

start-park.bat 启动项目脚本

位置:D:\project\park

@echo off
net start park
echo ---智慧停车启动中,请等待---
ping -n 20 127.0.0.1>nul
echo ---智慧停车启动成功--------

至此,项目配置完成

打包

在这里插入图片描述
由于笔者是将环境和项目分开了,所以需要打包两次,可根据实际情况来选择
打包完成后生成的两个exe文件,以管理员身份运行,直接无脑下一步即可

参考https://blog.csdn.net/Daniel__Wu/article/details/108327473#comments_15474215

其他

winsw下载

下载地址链接:https://pan.baidu.com/s/16-oLkKySz5uQ9E0KAlXiyA
提取码:mbv3

笔者亲测windows10系统安装没问题
windows7需要在安装项目环境之前先安装4.6的.net才可安装成功
下载地址 .net4.6
可根据实际情况来选择


版权声明:本文为kuangkings原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。