前置准备:

  1. 一个java可执行jar包;
  2. exe4j(java exe制作工具);
  3. 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

java打包成tar java打包成exe 运行报错java_开发语言


java打包成tar java打包成exe 运行报错java_开发语言_02


java打包成tar java打包成exe 运行报错java_jar_03


java打包成tar java打包成exe 运行报错java_java_04


java打包成tar java打包成exe 运行报错java_exe4j_05


java打包成tar java打包成exe 运行报错java_exe4j_06


java打包成tar java打包成exe 运行报错java_java_07


java打包成tar java打包成exe 运行报错java_java_08


在VM参数配置的地方加上:-Dfile.encoding=utf-8

java打包成tar java打包成exe 运行报错java_java打包成tar_09


java打包成tar java打包成exe 运行报错java_java_10


java打包成tar java打包成exe 运行报错java_java打包成tar_11


java打包成tar java打包成exe 运行报错java_jar_12


java打包成tar java打包成exe 运行报错java_exe4j_13


java打包成tar java打包成exe 运行报错java_java打包成tar_14


java打包成tar java打包成exe 运行报错java_java打包成tar_15


java打包成tar java打包成exe 运行报错java_java_16


java打包成tar java打包成exe 运行报错java_exe4j_17


java打包成tar java打包成exe 运行报错java_jar_18


一直点击NEXT,直到出现以下页面,这时已经在最开始选的路径下生成了exe文件,但是先别打开,需要将这个exe文件和jre合并打包,达到在没有jre环境的情况下也能运行。

java打包成tar java打包成exe 运行报错java_exe4j_19


二、用Inno Setup将exe文件和jre合并打包

java打包成tar java打包成exe 运行报错java_exe4j_20


java打包成tar java打包成exe 运行报错java_开发语言_21


java打包成tar java打包成exe 运行报错java_java_22


java打包成tar java打包成exe 运行报错java_exe4j_23


java打包成tar java打包成exe 运行报错java_java打包成tar_24


java打包成tar java打包成exe 运行报错java_java_25


java打包成tar java打包成exe 运行报错java_jar_26


java打包成tar java打包成exe 运行报错java_开发语言_27


java打包成tar java打包成exe 运行报错java_java_28


java打包成tar java打包成exe 运行报错java_java_29


java打包成tar java打包成exe 运行报错java_开发语言_30


java打包成tar java打包成exe 运行报错java_jar_31


java打包成tar java打包成exe 运行报错java_exe4j_32


到这里会弹出询问是否马上编译,选择否,先把脚本写好再自己编译

java打包成tar java打包成exe 运行报错java_java打包成tar_33


java打包成tar java打包成exe 运行报错java_exe4j_34


java打包成tar java打包成exe 运行报错java_开发语言_35


Source: “自己本地JRE路径*”; DestDir: “{app}{#MyJreName}”; Flags: ignoreversion recursesubdirs createallsubdirs

java打包成tar java打包成exe 运行报错java_java打包成tar_36


java打包成tar java打包成exe 运行报错java_jar_37


上图中最后一个Flag截图不全,贴一下代码:

#define MyJreName "jre"

Source: "C:\programs\Java\jdk1.8.0_261\jre\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

然后直接编译,会提示保存当前脚本,随便起个名字,下个还可以继续用

java打包成tar java打包成exe 运行报错java_jar_38


java打包成tar java打包成exe 运行报错java_java打包成tar_39


java打包成tar java打包成exe 运行报错java_java_40


喜欢本文的朋友不要忘记点一个免费的赞哦,你的赞将是我最大的动力。