idea+exe4j/launch4j/jsmoonth的打包exe+Inno Setup

一.idea打包exe

idea只是把代码和资源(如照片,css,dll等)打成jar文件的,顺便说一句,idea可以设置编译时候用的jdk版本,然后jar里就是对应版本jdk编译出来的class,来打包的,而最后不管是通过第三方软件还是idea打包的exe应该都是一个压缩文件(launch4j/jsmoonth打包的exe都可以用7zip打开,exe4j的打不开,会报错),虽然idea也可以在jar的同级文件夹bundle里打出exe,但是这个exe无法运行,不知道这个和我用的idea是社区版有没有关系,或许正版的idea可以打出能运行的exe

二.idea+JSMoonth(或idea+launch4j或idea+exe4j)

1.idea打包jar文件

具体细节不写了,网上一搜一大堆(native bundle选择image会生成bundle文件夹,里面会有exe,不想生成natvie bundle就默认选择none就行了),
配置jdk

配置idea打包配置

2.JSMoonth(或launch4j或exe4j)打包exe

(1)exe4j配置的介绍(版本号6.0.1)

导入配置文件
选择jar包的模式
配置输出的文件夹
配置生成的exe文件名
配置依赖的jar
放入自带的jre
成功后的测试
不付费的广告弹窗
版本号

(2)jsmoonth配置的介绍(版本0.9.9-7)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)launch4j配置的介绍(版本号是3.12)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.打包:要注意的是jsmoonth依赖的所有通过maven,或者gradle导入的jar文件,都要和生成exe,jre,放在一个文件夹里,不然就会双击exe,没有反应,不报错也不反应那种(我被这个问题坑了三天,后来无意之中想明白了,jar,exe,图片,图标都要放一个文件夹)
2.收费:exe4j是收费软件,试用版的exe4j在弹出应用之前,会弹出一个exe4j的广告弹窗。
3.icon:exe4j,launch4j用的图片必须是icon格式,jsmoonth必须不是icon格式,否则报错,还有就是exe4j打成的exe运行时,状态栏是图标,其他的显示默认的空样式。
4,设置本地包含lib,dll文件夹,要注意,就是lib,dll文件即使已经打包到exe里去了,但是还是要在exe所在的文件夹里再次包含(dll,lib文件一定要和exe在同级文件夹下,否则本机可运行,其他电脑上不可以运行)才可以,不然运行时会报错,UnsatisfiedLinkError;
exe4j是在native library里设置,
jsmoonth在current directory里设置,
哈哈,launch4j没找到在哪里设置这个文件夹,很遗憾,
如下图片所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结论

exe4j打的exe文件大小为27.7m,JSMoonth打出来的exe为6.79m,但是exe依赖的jar不需要和exe在同级文件夹下,而luanch4j,jsmoonth打出来的exe所依赖的jar需要和exe在同级文件夹下,7zip可以打开后者的exe,可以看出来,里面没有jar,所以我猜想是exe4j打包的时候,把它依赖的jar压缩到exe里去了,而其余的两个打包工具就没有这么做,所以打完exe,移动它的位置,不移动它的依赖jar程序就会等待加载jar而处于无反应状态。
公司里一个测试的小兄弟快下班的时候,主动要求帮我测了一下编译jdk与对应jre的四种搭配的运行结果,测试的电脑有三台,分别是win 7 32位,win 7 64位,win 10 64位.

  1. 32位jdk编译的class配置+32jre,win10 64可以 win7 64可以 win7 32可以
  2. 64位dk编译的class+64位jre,win 7 32位上报错(jsmoonth报错是jvm.dll没有在指定的电脑上运行,launch4j报错是没有jdk
    1.8.0到1.9.0),在其余电脑(win 7 64,win 10 64)64位上都可以运行
  3. 32位dk编译的class+64位jre,win10 64可以 win7 64可以 win7 32报错 ,报错也是
    jvm.dll没有在指定的电脑上运行,64位+32位jre,
  4. 64位dk编译的class+32位jre,结果是win10 64可以 win7 64可以 win7 32可以

三 Inno Setup 打exe运行包成安装包(5.5.9版本,)

	下面是script文件,把上面生成的exe安装到windows中去,并附加卸载功能
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=windows应用
AppVerName=ccoclient 1.0
AppPublisher= csdn, Inc.
AppPublisherURL=http://www.csdn.com.cn
AppSupportURL=http://www.csdn.com.cn
AppUpdatesURL=http://www.csdn.com.cn
DefaultDirName={pf}\windows应用
DefaultGroupName=windows应用
UserInfoPage=true
; agreement.txt文件不能为空
LicenseFile=D:\release\agreement.txt
;安装图标
SetupIconFile=D:\release\icon.ico

;备注版本信息
VersionInfoCompany=http://www.csdn.com.cn
VersionInfoDescription=windows应用
VersionInfoVersion=1.0.0.0
VersionInfoCopyright=Copyright (C) 2020-2029 csdn
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
Name: "English"; MessagesFile: "compiler:Languages\English.isl"
[Tasks]
Name: "desktopicon"; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"

[Files]
Source: "D:\release\*.*"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\release\jre32\*"; DestDir: "{app}\jre32"; Flags: ignoreversion recursesubdirs

[Icons]
Name: "{group}\windows应用"; Filename: "{app}\ccoclient.exe"
Name: "{userdesktop}\windows应用"; Filename: "{app}\ccoclient.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\ccoclient.exe"; Description: "启动windows应用"; Flags: nowait postinstall skipifsilent

[code]
procedure InitializeWizard();
begin
 WizardForm.LICENSEACCEPTEDRADIO.Checked:=true;
end;

inno setup 的[Files]标签头定义了两行source开头的命令*.*表示所有类型文件,*表示所有文件,后面的Flagsrecursesubdirs应该是当前文件夹下的所有文件或者文件夹(即递归全部的意思)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值