【转载】原文链接
前置准备:
- 一个java可执行jar包;
- exe4j(java exe制作工具);
- Inno Setup(将依赖打包进exe文件);
一、用exe4j打包exe文件:
打开exe4j,输入注册码(可以不输,但是最终运行exe文件会提示:this executable was created with an evaluation version of exe4j),name和company可以随便输,注册码从下面随便选一个:
A-XVK258563F-1p4lv7mg7sav
A-XVK209982F-1y0i3h4ywx2h1
A-XVK267351F-dpurrhnyarva
A-XVK204432F-1kkoilo1jy2h3r
A-XVK246130F-1l7msieqiwqnq
A-XVK249554F-pllh351kcke50
A-XVK238729F-25yn13iea25i
A-XVK222711F-134h5ta8yxbm0
A-XVK275016F-15wjjcbn4tpj
A-XVK275016F-15wjjcbn4tpj
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
在VM参数配置的地方加上:
-Dfile.encoding=utf-8
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
一直点击NEXT,直到出现以下页面,这时已经在最开始选的路径下生成了exe文件,但是先别打开,需要将这个exe文件和jre合并打包,达到在没有jre环境的情况下也能运行。
image.png
二、用Inno Setup将exe文件和jre合并打包
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
到这里会弹出询问是否马上编译,选择否,先把脚本写好再自己编译
image.png
image.png
image.png
Source: "自己本地JRE路径*"; DestDir: "{app}{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs
image.png
image.png
上图中最后一个Flag截图不全,贴一下代码:
#define MyJreName "jre"
Source: "C:\programs\Java\jdk1.8.0_261\jre\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs
然后直接编译,会提示保存当前脚本,随便起个名字,下个还可以继续用
image.png
image.png
image.png