java项目导出为jar并使用exe4j打包成可运行exe程序

时间:2021-12-27 13:06:21

前言: 上一篇文章写道  java项目打包成jar编写启动文件在windows和Linux下运行 ,对于普通的java应用程序这种方式没有什么问题,but,最近突然想起来,这样好不容易写的程序,class源码不就相当于暴漏了吗,所以如果在Windows下直接打包成一个exe的运行程序就好了。

1、项目的目录结构如如下图:


java项目导出为jar并使用exe4j打包成可运行exe程序

   1.1   src  下 有  com.trs.file.util包和 log4j..properties 日志配置文件,com.trs.file.util 包存放具体java类

   1.2   JRE System Library  为java项目JRE引用,项目使用的是jdk1.8.0

   1.3   lib   log4j-1.2.17.jar架包引用

   1.4  logs   存放 日志文件的文件夹

   1.5   根目录下的项目 config.properties 配置文件

2、程序测试通过后,可进行打包,具体步骤为:

    2.1、选中项目名,右键(Export)导出,选择java——> JAR file,如图:

java项目导出为jar并使用exe4j打包成可运行exe程序

   2.2,Next下一步,如图:

    2.2.1 将  项目结构中 .settings 不用勾选,右侧 .classpath 和 .project 不用勾选,其余目录结构完整保留即可,(网上很多粘贴复制党说只保留 src下文件,后面能坑死人)


      2.2.2  选择 JAR file 要导出的路径,自己选择一下导出要存放的路径即可。


java项目导出为jar并使用exe4j打包成可运行exe程序


3、Next 下一步,如图:


java项目导出为jar并使用exe4j打包成可运行exe程序


4、选择程序运行main方法类文件

     4.1,选择项目中 程序运行的 main方法所在的类文件,点击browse,在弹出框中就可以看到,点击OK即可,在点击Finish完成。

java项目导出为jar并使用exe4j打包成可运行exe程序


  4.2 ,如果点击Finish时弹出 如图警告提示,表示程序中不被建议(或已弃用)的语法,或者有编译错误,如果已经测试过,没有影响,则不用理会,点击ok就行了。

java项目导出为jar并使用exe4j打包成可运行exe程序


4.3  查看jar,在步骤 2.2.2中保存的路径下找到  生成的jar查看,如图:    

java项目导出为jar并使用exe4j打包成可运行exe程序

4.4  到此java程序打包成jar就准备好了,开始把它变成 exe运行文件吧,将jar转成exe需要用到一个 叫 exe4j的 软件,

根据自己的操作系统下载对应即可,这里提供exe4j-6.0 的64和32为下载 : exe4j


5,下载安装完成后,界面如图,第一步完成注册,Name,Company随便填就是了,注册码:A-XVK258563F-1p4lv7mg7sav (网上很多啊,随便搜一个就行),

完成后点击Next

    java项目导出为jar并使用exe4j打包成可运行exe程序

5.2 勾选JAR in EXE ,表示要打包jar成exe程序,然后下一步

java项目导出为jar并使用exe4j打包成可运行exe程序

5.3 ,填写打包后的 exe程序名称和保存路径。

java项目导出为jar并使用exe4j打包成可运行exe程序


5.34,填写打包后的 exe程序名称和保存路径。 这一步很重要的啊, 开始我没选程序类型,默认为gui程序,运行exe程序后,什么反应都没有,

我以为报错了呢,后来通过日志发现日志文件在刷新,再一看任务管理器竟然在运行这,可是没有任何反应,我这个崩溃啊,有研究了好久什么exe

弹出窗口啊,运行程序弹出窗口啊,doc窗口,日志输出啊,差点跑偏到java窗体程序上去了,研究一下午麻蛋最后才发现应该选控制台程序,切记切记。

然后我就下一步到 第5步了,最后生成发下,还是报错啊,又研究了好久,最后发现 左侧第4步还藏着好多选项呢,其中就是 选择是32位还是64位运行,

你的手动点击去勾选,要不然又能坑死你的如下图

java项目导出为jar并使用exe4j打包成可运行exe程序


java项目导出为jar并使用exe4j打包成可运行exe程序

5.35 开始添加 要运行的jar路径,如果打包成的这个java项目jar中还用到了其他的jar包,需要也单独再引入,比如我的项目中还用到了 log4j的

jar包,虽然java项目导出成jar时已经有了,但是还需要在这一步也添加进来。

java项目导出为jar并使用exe4j打包成可运行exe程序

并且选择要运行的主类的main方法

java项目导出为jar并使用exe4j打包成可运行exe程序

下一步,填写支持运行的jdk版本,如果要打包的exe程序在运行的电脑上有jdk环境支持,那么可以直接下一步了,但是有些小白客户的

电脑上怎么可能会有呢,所以这时就需要在打包的时候把jre环境一并打包好,

java项目导出为jar并使用exe4j打包成可运行exe程序

连带打包jre : 点击Advanced Options

在将准备好的jre添加进来,注意:jre文件必要包一层jre目录,即新建一个 jre文件件,将jre放进去 jre\jre,然后删除两个文件,如图:

java项目导出为jar并使用exe4j打包成可运行exe程序

java项目导出为jar并使用exe4j打包成可运行exe程序


5.5,Next下一步,下一步只到完成即可,


java项目导出为jar并使用exe4j打包成可运行exe程序


5.6,去到保存exe的文件路径,点击exe程序进行测试。

java项目导出为jar并使用exe4j打包成可运行exe程序

啊啊啊,程序报错,说找不到指定文件,因为的项目用到了 config.properties嘛,复制过来再试一次

java项目导出为jar并使用exe4j打包成可运行exe程序


ok,没有任务问题了,

整理下,把文件夹的其他无关文件都删除,最后运行测试通过

java项目导出为jar并使用exe4j打包成可运行exe程序

6,再把该文件夹打包压缩,发给没有jre的小白试一下吧。