一篇关于Java+Idea+exe4j+Inno Setup的Swing项目打包安装包过程

1 篇文章 0 订阅
1 篇文章 0 订阅

1、首先需要用idea得到你项目的达到jar包--->student.jar

File->Project Structure->Artifacts

此处要选择你的项目、项目的启动类以及extract to the target JAR

点击OK之后就生成如图所示

如果报错,只需要找到META-INF文件夹删除即可,删除之后要关闭Project Structure这个对话框然后从新打开就可以了

接着依次点击Build->Build Artifact会出现如下弹框,依次点击Clean,然后点击Build即可

然后在这个Ouput directory路径下找到jar即可,找到之后双击打开可以测试一下可不可以用,成功之后再使用exe4j将其打包成可执行exe

2、使用exe4j将jar打包成exe(建议将jar复制到一个单独的文件夹,此外要做到在无jdk环境下运行也需要将jre文件夹复制到这个文件夹下)

打开exe4j开始打包exe

这里要设置是GUI应用,以及执行文件的名称,还有exe的图标以及运行的操作系统位数

点击绿色的加号

然后选择第一步生成的jar包即可

选择启动类

选择jdk最低和最高版本,这里我选择1.8

点击高级选项->Search sequence

如下图,相当于告诉软件从当前目录的jre中获取jdk运行环境,之后打包安装包时一并打包即可

然后一直下一步,出现如下的界面就是成功了

文件夹下就会出现exe文件,到此第二步就完成了

3、将exe、jre使用inno Setup打包成安装包

选择新增一个file下一步就行

出现这个界面即可,这里的代码我自己使用的时候已经调试好了只需要直接复制粘贴,修改一下配置文件即可

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

#define MyAppName "xxx"    ;app的名称
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "https://www.example.com/"
#define MyAppExeName "xxx.exe"    ;需要打包的exe名称
#define MyAppAssocName MyAppName + " File"
#define MyAppAssocExt ".myp"
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt

[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={{0F1ED40E-E092-4C6F-8069-CFE9A9D72631}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
ChangesAssociations=yes
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=D:\安装包测试\安装包测试12  ;安装包输出路径
OutputBaseFilename=安装包   ;安装包名称
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:\安装包测试\安装包测试12\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion   ;exe路径
Source: "D:\安装包测试\安装包测试12\jre\*"; DestDir: "{app}\jre"; Flags: ignoreversion recursesubdirs createallsubdirs  ;jre路径
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Registry]
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

修改完成之后运行即可,最后得到一个安装包就可以安装使用啦

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值