inno setup 将jdk+mysql+jar打包成exe,在windows上一键部署: 您所在的位置:网站首页 jre打包下载 inno setup 将jdk+mysql+jar打包成exe,在windows上一键部署:

inno setup 将jdk+mysql+jar打包成exe,在windows上一键部署:

2024-03-22 10:47| 来源: 网络整理| 查看: 265

最近看了些类似的文章,感觉很有趣,就心血来潮自己搞了一个玩玩。 一、准备工作 1、 inno setup 2、 exe4j 3、 jre 是jdk1.8.152下的 4、 jar(测试架包) 5、目录如下,先把要用的统一放在一起。

二、exe4j部分: 提示:安装和破解,不做赘述。将 jar打包成exe应用程序,可在无JDK/JRE环境下运行。 1、开始界面,点Next

2、 勾选 "JAR in EXE " mode ,在点next。

3、 Appincation info

4、勾选后,下拉Advanced Options,选择32bit or 64bit

VM Parameters 可以 添-Dappdir=${EXE4J_EXEDIR} 或者 -Dfile.encoding=utf-8,这里我用前者

然后一直下一步,最终出现如下界面  当然直接点finish也行,点击Save as 命名保存

会生成一个exe4j图标和 exe(先不运行 ,后面要用到)、1kb的exe4j图标快速打开配置过的信息,下次jar有改动,不用重复上面步骤了,直接替换jar,在点开我们命名保存的exe4j后点finish。

三、inno setup部分: 提示:安装inno setup后,创建create.iss文件。复制别人iss内容做修改,  就不打开inno setup ,关于inno setup的使用,可以参考这篇文章 https://www.jb51.net/softjc/460940.html 1、 修改后的iss文件如下 #define MyAppName "App" #define MyAppVersion "1.5" #define MyAppPublisher "GZH 个人工作室" #define MyAppURL "http://www.GZHcompany.com/" #define MyAppExeName "安装app.exe" #define myjre "jre" [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={{13E67407-F574-445F-9200-6EEB76C6DC43} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DisableProgramGroupPage=yes OutputDir=D:\datasource\TTTTTTT OutputBaseFilename=GZH Compression=lzma SolidCompression=yes [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "D:\datasource\TTTTTTT\安装app.exe"; DestDir: "{app}"; Flags: ignoreversion ;拷贝jdk Source: "D:\datasource\TTTTTTT\jre\*"; DestDir: "{app}\{#myjre}"; Flags: ignoreversion recursesubdirs createallsubdirs ;拷贝图片 Source: "D:\datasource\TTTTTTT\image\*"; DestDir: "{app}\image"; Flags: ignoreversion recursesubdirs createallsubdirs ;拷贝vcredist.exe win7系统缺少.dll文件 Source: "D:\datasource\TTTTTTT\VC\*"; DestDir: "{app}\VC"; Flags: ignoreversion recursesubdirs createallsubdirs ;拷贝mysql Source: "D:\datasource\TTTTTTT\mysql-5.7.30-winx64\*"; DestDir:"{app}\mysql-5.7.30-winx64"; Flags:igNoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [INI] ;修改数据库配置文件 Filename:"{app}\mysql-5.7.30-winx64\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql-5.7.30-winx64" Filename:"{app}\mysql-5.7.30-winx64\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql-5.7.30-winx64\data" ;Filename:"{app}\mysql-5.7.30-winx64\my.ini";Section:"mysqld";Key:"port"; String:"3308" ;Filename:"{app}\mysql-5.7.30-winx64\my.ini";Section:"client";Key:"port"; String:"3308" [Icons] Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent Filename: "{app}\mysql-5.7.30-winx64\bin\mysql_init.bat" [UninstallRun] Filename: "{app}\mysql-5.7.30-winx64\bin\uninstallmysql.bat" [UninstallDelete] Type:filesandordirs;Name:"{app}" 2、mysql_init.bat @echo off cd /d %~dp0 "%cd%\mysqld.exe" --initialize-insecure --user=mysql --console echo -----mysql init successfully----- cd .. set "mysqlpath=%cd%" cd bin mysqld install mysql --defaults-file="%mysqlpath%\my.ini" echo -----mysql service install successfully----- net start mysql sc config mysql start= auto net stop mysql net start mysql cd .. ::创建文件夹与数据库同名,如果不建会报Unkouw database xxxx, md %cd%\data\bookstord "%cd%\bin\mysqladmin" -u root password root ::如果写 %cd%\bin\mysql.exe" -uroot -proot < "%cd%\bookstord.sql" 这个语句会报No database selected "%cd%\bin\mysql.exe" -uroot -proot bookstord < "%cd%\bookstord.sql" pause; ::配置环境变量,我试过也可以不配mysql的环境变量,项目也可运行,因为mysql服务已经自启动了 wmic ENVIRONMENT create name="MYSQL_HOME",username="",VariableValue="%mysqlpath%" wmic ENVIRONMENT where "name='PATH' and username=''" set VariableValue="%path%;%%MYSQL_HOME%%\bin" echo -----mysql service command successfully----- 3、 uninstallmysql.bat @echo off title 软件正在卸载中,请不要关闭 cd /d %~dp0 net stop mysql cd .. cd bin mysqld --remove wmic ENVIRONMENT where "name='MYSQL_HOME'" delete echo 删除成功 exit  将这两个bat文件提前放在准备的mysql-5.7bin目录下

4、 my.ini是我主机上的配置直接拿过来,basedir和datadir不需要改动,上面的create.iss文件里的 [INI]标签配置好了, 等会要在win7虚拟机上部署安装时会自动修改,不用关心。 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=E:\mysql\mysql-5.7.30-winx64 # 设置mysql数据库的数据的存放目录 datadir=E:\mysql\mysql-5.7.30-winx64\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8mb4   数据文件用 Navicat 导出放在mysql-5.7.winx64下,

这里没有手动创建data文件夹,等会集成安装会自动生成。

 

四、集成: 提示:jre 已经在exe4j时打包好了,无需在写配置文件,然后双击iss文件,进入界面。 等打包结束会生成一个应用程序如下图

打开虚拟机的共享目录,找到应用程序安装软件,由于win7虚拟机很干净,在安装数据库时会报丢失MSVCR120.dll文件,安装vcredist_x64.exe解决了。

 双击运行应用程序

安装完先不急着运行把launch App取消勾选,到安装目录看看mysql有没有生成数据和修改参数

由于没有前端页面,就写了个swing窗口来展示,卸载的话双击unins000.exe。

做了两天,总的来说还行吧。  


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有