前言: 上一篇文章写道 java项目打包成jar编写启动文件在windows和Linux下运行 ,对于普通的java应用程序这种方式没有什么问题,but,最近突然想起来,这样好不容易写的程序,class源码不就相当于暴漏了吗,所以如果在Windows下直接打包成一个exe的运行程序就好了。
1、项目的目录结构如如下图:
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,如图:
2.2,Next下一步,如图:
2.2.1 将 项目结构中 .settings 不用勾选,右侧 .classpath 和 .project 不用勾选,其余目录结构完整保留即可,(网上很多粘贴复制党说只保留 src下文件,后面能坑死人)
2.2.2 选择 JAR file 要导出的路径,自己选择一下导出要存放的路径即可。
3、Next 下一步,如图:
4、选择程序运行main方法类文件
4.1,选择项目中 程序运行的 main方法所在的类文件,点击browse,在弹出框中就可以看到,点击OK即可,在点击Finish完成。
4.2 ,如果点击Finish时弹出 如图警告提示,表示程序中不被建议(或已弃用)的语法,或者有编译错误,如果已经测试过,没有影响,则不用理会,点击ok就行了。
4.3 查看jar,在步骤 2.2.2中保存的路径下找到 生成的jar查看,如图:
4.4 到此java程序打包成jar就准备好了,开始把它变成 exe运行文件吧,将jar转成exe需要用到一个 叫 exe4j的 软件,
根据自己的操作系统下载对应即可,这里提供exe4j-6.0 的64和32为下载 : exe4j
5,下载安装完成后,界面如图,第一步完成注册,Name,Company随便填就是了,注册码:A-XVK258563F-1p4lv7mg7sav (网上很多啊,随便搜一个就行),
完成后点击Next
5.2 勾选JAR in EXE ,表示要打包jar成exe程序,然后下一步
5.3 ,填写打包后的 exe程序名称和保存路径。
5.34,填写打包后的 exe程序名称和保存路径。 这一步很重要的啊, 开始我没选程序类型,默认为gui程序,运行exe程序后,什么反应都没有,
我以为报错了呢,后来通过日志发现日志文件在刷新,再一看任务管理器竟然在运行这,可是没有任何反应,我这个崩溃啊,有研究了好久什么exe
弹出窗口啊,运行程序弹出窗口啊,doc窗口,日志输出啊,差点跑偏到java窗体程序上去了,研究一下午麻蛋最后才发现应该选控制台程序,切记切记。
然后我就下一步到 第5步了,最后生成发下,还是报错啊,又研究了好久,最后发现 左侧第4步还藏着好多选项呢,其中就是 选择是32位还是64位运行,
你的手动点击去勾选,要不然又能坑死你的如下图
5.35 开始添加 要运行的jar路径,如果打包成的这个java项目jar中还用到了其他的jar包,需要也单独再引入,比如我的项目中还用到了 log4j的
jar包,虽然java项目导出成jar时已经有了,但是还需要在这一步也添加进来。
并且选择要运行的主类的main方法
下一步,填写支持运行的jdk版本,如果要打包的exe程序在运行的电脑上有jdk环境支持,那么可以直接下一步了,但是有些小白客户的
电脑上怎么可能会有呢,所以这时就需要在打包的时候把jre环境一并打包好,
连带打包jre : 点击Advanced Options
在将准备好的jre添加进来,注意:jre文件必要包一层jre目录,即新建一个 jre文件件,将jre放进去 jre\jre,然后删除两个文件,如图:
5.5,Next下一步,下一步只到完成即可,
5.6,去到保存exe的文件路径,点击exe程序进行测试。
啊啊啊,程序报错,说找不到指定文件,因为的项目用到了 config.properties嘛,复制过来再试一次
ok,没有任务问题了,
整理下,把文件夹的其他无关文件都删除,最后运行测试通过
6,再把该文件夹打包压缩,发给没有jre的小白试一下吧。