超详细(小 white 也能懂):Inno Setup 整合jar包(转换成系统服务自启动)+jdk+mysql,部署web网站

前言:公司项目需要,需要把开发的网站平台打包成exe安装包,并能实现一键安装,安装完成后数据库和网站能自动启动,并且能开机自启动,这样做可以让不懂网络布置和数据库安装的售后人员一键部署网站(其实这种需求对于很多小型网络平台是很常见的),

一.准备资料

1. 网站开发完导出的jar包:yiyao.jar(我是用的spring boot + vue模式开发的)

2 .WinSW.NET4.exe,点我去下载(我用的是2.10.3这个是用来将jar包转换成系统服务的,这样你的网站就成了系统服务,不必在cmd黑框里面显示,是不是很nice?)

2. jdk 1.8免安装版(jdk是java运行环境,懂的都懂,哈哈哈,用户电脑一般没有java环境变量,这个得要),点我去下载

3. mysql-5.7.26 32位免安装版本(鬼知道用户电脑是多少位的,32最好,记得在mysql目录下创建data文件夹,存放数据库),点我去下载

4. Inno Setup5.0汉化版(这软件有汉化版的,网上能搜到),点我去下载

5.create.sql(数据库的sql文件,这个就是你的网站的数据库表文件,直接放在mysql的sql文件下面,自己创建sql文件夹哦,这个存储的就是数据表结构了,当然如果你网站没有数据库或者是自动创建数据库表的话,那就当我没说,哈哈哈哈哈)

6.几个初始化的bat 文件:mysql_init.bat、mysql_stop.bat、my.ini、autoInstallJDK.bat、platform_init.bat、启动服务.bat、删除服务.bat、停止服务.bat、yiyao.xml、yiyao.iss下面依次贴出来,客官不要急,往下看~

二.目录结构(platform是放网站jar包的和WinSW.NET4的

三.相关脚本

1.mysql_init.bat(这个用来在安装过程中启动mysql服务的,放在mysql的bin目录下)

cd /d %~dp0

"%cd%\mysqld.exe" --initialize-insecure --user=mysql --console

echo -----mysql init succee-----

cd ..

set "MYSQL_HOME=%cd%"

cd bin

mysqld install mysql --defaults-file="%MYSQL_HOME%\my.ini"

echo -----mysql service install succee-----


net start mysql

sc config mysql start= auto

net stop mysql


net start mysql
echo 安装完毕

cd ..

"%cd%\bin\mysqladmin" -u root password sopen
echo 修改密码完毕

"%cd%\bin\mysql.exe" -uroot -psopen < "%cd%\sql\create.sql"
echo 建表完毕

echo 建立新用户完毕

2.mysql_stop.bat(这个用来在客户卸载软件的时候停止mysql的,放在mysql的bin目录下)

@echo off
cd /d %~dp0
echo ----1.[Mysql] start uninstalling Mysql ---->>../log.txt
sc stop mysql-job
sc delete mysql-job
echo ----2. [Mysql] uninstall finished---- >>../log.txt
exit

3.my.ini(这是数据库的配置信息, 比如连接数,延时等等,玩数据库的铁子们应该懂)

[mysqld]
basedir ="C:\mysql-5.7.26-win32"
datadir ="C:\mysql-5.7.26-win32\data"
port=3308
server_id =10
character-set-server=gbk
character_set_filesystem=gbk
max_allowed_packet=41942040
[client]
port=3308
default-character-set=gbk
[mysqld_safe]
timezone="CST"
[mysql]
default-character-set=utf8

4.autoInstallJDK.bat(这个是在安装完成后自动为系统配置java环境变量的,放在jdk的bin目录下)

@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

5.platform_init.bat(这个是在安装完成后启动你的网站服务的,就是jar包的那个,放在platform的platform目录下)

cd /d %~dp0

start yiyao.exe install

echo 初始化完成,欢迎使用!

6.启动服务.bat(这个是启动服务的bat文件,用于安装完成后自动调用的,平时网站意外停止的时候也可以双击这个启动它,放在platform的platform目录下)

net start yiyao

echo ---服务启动成功,3秒后退出---

timeout /t 3

7.删除服务.bat(卸载软件时调用的,用来删除服务,做事有始有终,卸载干干净净,虽然只有一行代码,哈哈哈,放在platform的platform目录下)

net stop yiyao

yiyao.exe uninstall

echo ---服务已删除,欢迎再次使用---

timeout /t 3

8.停止服务.bat(停止服务的文件,如果有一天你想把网站关一下,干它就完了,放在platform的platform目录下)

net stop yiyao

echo ---服务已停止,3秒后退出---

timeout /t 3

9.yiyao.xml(这个要和jar包名字一样,并且要把WinSW.NET4.exe名字也改成yiyao.exe,放在platform的platform目录下)

<configuration>
<id>yiyao</id>
<name>yiyao</name>
<description>平台网站</description>
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-jar yiyao.jar</arguments>
<startmode>Automatic</startmode>
<logpath>%BASE%\log</logpath>
<logmode>rotate</logmode>
</configuration>

10.yiyao.iss(这个就是InnoSetup的脚本文件,以上所有的脚本文件大都归它使唤,牛逼Plus,哈哈哈)

; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

#define MyAppName "yiyao_platform"
#define MyAppVersion "1.2"
#define MyAppPublisher "****科技公司"
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "yiyao.exe"

[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{12CEFBAE-5AD1-46E0-A5D6-BBEC398A0550}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
LicenseFile=C:\Users\Administrator\Desktop\package_yiyao\协议.txt
InfoBeforeFile=C:\Users\Administrator\Desktop\package_yiyao\版本说明.txt
InfoAfterFile=C:\Users\Administrator\Desktop\package_yiyao\安装完成.txt
OutputDir=C:\Users\Administrator\Desktop\package_yiyao\output
OutputBaseFilename=医药平台(v1.2)
SetupIconFile=C:\Users\Administrator\Desktop\package_yiyao\favicon.ico
Compression=lzma
SolidCompression=yes

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

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

[Files]
Source: "C:\Users\Administrator\Desktop\package_yiyao\mysql-5.7.26-win32\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Users\Administrator\Desktop\package_yiyao\jdk\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Users\Administrator\Desktop\package_yiyao\platform\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

[Icons]
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"

[INI]
;修改数据库配置文件
Filename:"{app}\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\data"
 
Filename:"{app}\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\data\data"
 
Filename:"{app}\my.ini";Section:"mysqld";Key:"port"; String:"3308"
 
Filename:"{app}\my.ini";Section:"client";Key:"port"; String:"3308"

[Run]
Filename: "{app}\bin\autoInstallJDK.bat";
Filename: "{app}\bin\mysql_init.bat"
Filename: "{app}\platform\platform_init.bat"
Filename: "{app}\platform\启动服务.bat"


[UninstallRun]
Filename: "{app}\bin\mysql_stop.bat"
Filename: "{app}\platform\删除服务.bat"

四.编译运行

 双击绿色播放按钮进行编译,然后你去喝杯咖啡,就好了~

然后你就会发现在output文件夹下面多了个这:

不要犹豫,双击它就是熟悉的傻瓜式安装了,是不是很简单呢?

哦对了,这个安装过程中杀毒软件会刀它,记得提醒安装人员放行

第一次写博客,写得不好,老铁们多多指教~

引用文章:三、jdk+mysql+jar打包整合成exe文件,Windows下一键安装_咸鱼最牛逼的博客-CSDN博客_mysql打包exe

 jar转服务引用:将jar打包成windows系统服务,并实现开机自启 - liurz-1994 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄博小士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值