【Java项目一键打包exe】

一键打包jdk+mysql+nginx为exe文件

1. 下载好需要的文件

inno setup
提取码:7on1

Bat_To_Exe_Converter
提取码:r4a9

mysql-8.0.x 以上免安装版本

jdk-1.8.x 以上免安装32位版本

2. 打包配置

先在本地创建一个文件夹ht,将解压好的mysql数据库复制到该文件夹中

2.1 mysql_init.bat

在mysql/bin目录中新建mysql_init.bat,输入以下代码,代码中mysql服务名为“mysql”。

@echo off
rem 将工作路径切换到当前脚本所在目录
cd /d %~dp0

rem 开始安装mysql
echo ----1.start installing Mysql ---->>../log.txt
"%cd%\mysqld.exe" --initialize-insecure --user=mysql --console 
cd ..
set "mysqlpath=%cd%">>../log.txt
cd bin
mysqld install mysql --defaults-file="%mysqlpath%\my.ini"

rem 设置mysql开机自启
echo ----2. start Mysql service---->>../log.txt
rem pause
net start mysql
sc config mysql start= auto
net stop mysql
net start mysql

rem 设置mysql环境变量,并进行创建数据库初始化
echo ----3.setting Mysql environment ---->>../log.txt
cd ..
"%cd%\bin\mysqladmin" -u root password 123456
"%cd%\bin\mysql.exe" -uroot -p123456 < "%cd%\sql\create.sql"
echo %Path%
echo %Path%|find /i "%mysqlpath%" && set IsNull=true || set IsNull=false
echo %IsNull%
if not %IsNull%==true (
wmic ENVIRONMENT create name="MYSQL_HOME",username="<system>",VariableValue="%mysqlpath%"
rem 追加path变量
wmic ENVIRONMENT where "name='PATH' and username='<system>'" set VariableValue="%path%;%%MYSQL_HOME%%\bin;"
echo ----4. Mysql environment create/append success---->>/log.txt 
)
exit

2.2 mysql_stop.bat

在mysql/bin目录中新建mysql_stop.bat,插入以下代码,代码中mysql服务名为“mysql”。

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

2.3 my.ini

在mysql目录中新建my.ini,插入以下代码,代码中mysql服务名为“mysql”。

[mysqld]
basedir ="C:\mysql-8.0.26-winx64"
datadir ="C:\mysql-8.0.26-winx64\data"
port=3306
server_id =10
character-set-server=utf8mb4
character_set_filesystem=utf8mb4
collation_server=utf8mb4_0900_ai_ci
max_allowed_packet=41942040
[client]
port=3306
default-character-set=utf8mb4
[mysqld_safe]
timezone="CST"
[mysql]
default-character-set=utf8mb4

2.4 新建create.sql文件,用于初始化数据库

在mysql目录中新建sql文件夹,将create.sql文件放置其中

注意:在create.sql文件头部需要包含创建数据库语句,如

DROP DATABASE IF EXISTS medic;
CREATE DATABASE medic;
USE medic;

3. 项目配置

在ht目录下,新建project文件夹,将解压好的jdk以及项目jar包放置其中

3.1 start.bat

在project目录中新建start.bat,输入以下代码

.\jdk1.8.0_291\bin\java -jar xxx.jar(自己项目的jar包)
pause

3.2 将start.bat转换为start.exe

将下载的Bat_To_Exe_Converter工具解压,运行Bat_To_Exe_Converter_(x64).exe程序,在工具界面中直接打开start.bat,右边“图标”要选择我们公司的ico图标,然后点击转换即可,将转换之后的start.exe也存放于project目录

4. 项目打包

先安装好Inno setup程序,在ht文件夹中新建一个inno.iss文件

打开inno.iss文件,加入以下配置

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

[Setup]

; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!
 
#define MyAppName "云管理系统"
#define MyAppVersion "1.0"
#define MyAppPublisher "xxx.com"
#define MyAppURL "http://localhost:8080/ht"
#define MyAppExeName "云管理系统.exe"
#define MyAppDir "ht"
 
[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{D4044F98-8902-4B87-A4E4-3E6D2DAB4259}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppDir}
DefaultGroupName={#MyAppName}
; 打包后的exe文件存储路径 可自定义
OutputDir=D:\exeout
; 打包后的exe文件名
OutputBaseFilename=云管理系统
; 压缩方式
Compression=lzma
; 使文件更小
SolidCompression=yes
; 必须有管理员权限才能安装
PrivilegesRequired=admin
 
[Languages]
Name: "English"; MessagesFile: "compiler:Default.isl"
Name: "CN"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
; source中的文件路径,皆为该文件当前所在路径
Source: "D:\oneKeySetUp\mysql-8.0.26-winx64\*"; DestDir: "{app}\mysql-8.0.26-winx64"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\oneKeySetUp\project\*"; DestDir: "{app}\project"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\oneKeySetUp\nginx-1.20.1\*"; DestDir: "{app}\nginx-1.20.1"; Flags: ignoreversion recursesubdirs createallsubdirs
; 注意: 不要在任何共享系统文件上使用“Flags:ignoreversion”
 
[Icons]
; 桌面创建“start.exe”的快捷方式,命名为“云管理系统”
Name: "{commondesktop}\云管理系统"; Filename: "{app}\project\start.exe"; WorkingDir: "{app}\project";
; 桌面创建“nginx.exe”的快捷方式
Name: "{commondesktop}\nginx"; Filename: "{app}\nginx-1.20.1\nginx.exe"; WorkingDir: "{app}\nginx-1.20.1";

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

; 程序安装成功后执行脚本 
[Run]
Filename: "{app}\mysql-8.0.26-winx64\bin\mysql_init.bat";
 
[UninstallRun]
Filename: "{app}\mysql-8.0.26-winx64\bin\mysql_stop.bat";
 
[UninstallDelete] 
Type:filesandordirs;Name:"{app}";

配置调整好之后,直接运行进行打包。

打包完成会自动在OutputDir目录下生成一个exe程序,并提示安装。该程序安装过程中,会自动安装mysql数据库,执行初始化sql导入,安装完成后,电脑桌面会生成程序的快捷方式,运行会执行project中创建的start.exe程序。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值