利用exe4j制作exe文件

首先到exe4j官网下载exe4j,http://www.ej-technologies.com/index.html。 
部分注册码: 
用户名和公司名可随便填

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
  • 1
  • 2
1、打开界面:

这里写图片描述

2、点击Chance Licence,注册

这里写图片描述

3、点击NEXT,此时有两个模式(Regular mode 和 “JAR in EXE” mode)供选择。前者的功能是直接打包exe,但这个exe没有包含jar文件或者class。所以打包之后你就会有两个文件,一个是exe文件,另一个可能是一个文件夹也可能是一个jar文件,也就是说exe文件是指向jar文件.所以这个时候jar文件还是会暴露于客户. 后者是直接打包成一个exe文件。它里面包含着class文件,但很难被用户解压缩。Regular mode 可以更好的保证可移植性,”jar in exe”mode 将编译成二进制文件,更好保持程序不被反编译。

这里写图片描述

4、这里我先选择“JAR in EXE”mode,因为我选这个的时候,生成的exe运行总是报错,原因就是依赖资源丢失,没有被附加上。点击NEXT。此处填软件名简写和输入目录。

这里写图片描述

5、如下图,填写软件名和图标。

这里写图片描述

6、如下图,点右边的+号添加jar文件和所需要的第三方jar包,我出错也出在这个地方,因为引用的第三方jar包有好几十个,一个个添加我是没想到的,资料里说,下方的Advanced Options可以添加第三方jar包所在文件夹,但我添加后还是报错。最后我换另一种模式得以解决。

这里写图片描述

7、继续,JRE配置。如下图。填写完。

这里写图片描述

8、点击Advanced Options,再点击Search sequence.

这里写图片描述 
此时你会看到环境变量已经添加,如果系统已经配置环境变量,会自动添加系统jre环境变量。但这种方法并不推荐,因为客户电脑可能没配置环境变量,此时安装文件需自带jre环境。

9、将自动添加的环境变量X掉,再选择+添加你自己的jre文件夹。

这里写图片描述 
这里写图片描述

10、点击NEXT,选择Client hotspot VM.

这里写图片描述

11、选择启动界面加载图,splash screen。

这里写图片描述

12、点击NEXT,开始编译。出现以下信息表示编译成功。

这里写图片描述

如果出现NoClassDefFound错误,肯定是依赖资源包被有成功被打包。一般问题都出在这里。如果是项目还好,资源不多。但项目比较大一点,需要依赖的jar包以及一些配置文件,图片等等就不容易打包了。在“JAR in EXE” mode下我一般都是报NoClassDefFound错误,类加载异常。后面我换了另一种模式 Regular mode后,大部分步骤相同,主要不同在这里,如下图: 
这里写图片描述 
主要看Entry Type,在“JAR in EXE”mode下前面两项是不可选的,现在Regular mode下可选。这里我们通过选择Scan Directory 或者Directory来选择我们需要依赖的资源包所在文件夹,把你需要依赖的所有文件夹都附加上。经过这步,后面的报错问题就解决了。

原文地址:https://www.cnblogs.com/dudefu/p/5307720.html