原文链接:http://voidm.com/2018/12/29/java-jar-transform-exe/
打包Jar工程
将java项目打包成jar工程,可以是文章以SpringBoot为例
pom文件下的packaging改为jar, 之后执行package打包获得项目jar文件
<groupId>com.voidm</groupId>
<artifactId>maven-spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
$: mvn package
将java项目打包成jar工程,可以是文章以SpringBoot为例
pom文件下的packaging改为jar, 之后执行package打包获得项目jar文件
<groupId>com.voidm</groupId>
<artifactId>maven-spring-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
$: mvn package
测试Jar
打包完毕后,执行java -jar springboot-demo.jar.jar,启动测试该项目
浏览器访问http://127.0.0.1:8080/web 测试
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTIzMDE5LnBuZw%3D%3D.png?w=700)
页面响应成功, jar工程是没有问题的,执行下一步,打包成exe
打包完毕后,执行java -jar springboot-demo.jar.jar,启动测试该项目
浏览器访问http://127.0.0.1:8080/web 测试
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTIzMDE5LnBuZw%3D%3D.png?w=700)
页面响应成功, jar工程是没有问题的,执行下一步,打包成exe
打包成exe
打开exe4j软件,点击Next按钮,配置相关参数
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyLzIwMTgxMjI5MTIzNDM2LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTIzNTI0LnBuZw%3D%3D.png?w=700)
随便写一个name,并选择exe生成路径, 这块要注意在该路径下将jre Copy到该目录下,如下图(必须)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0NzE0LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM1MTI3LnBuZw%3D%3D.png?w=700)
如果不是GUI的,这块选择Console,控制台输出 ![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTQwMzMxLnBuZw%3D%3D.png?w=700)
这里 如果运行系统64位 请打钩, 否则取消勾选
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0MTMyLnBuZw%3D%3D.png?w=700)
这里先选择要打包的jar,下方选择Main方法入口
如果是SpringBoot项目,请选择JarLauncher这个Main,否则启动会报错 ! ![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0MzEzLnBuZw%3D%3D.png?w=700)
选择JDK版本号,这里我的运行环境为1.8,之后点击Advanced Options 选择Search Sequence ![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM1MDA0LnBuZw%3D%3D.png?w=700)
选择之前copy的jre文件夹名 ,注意Directory后面文件夹是相对路径,直接输入文件夹名即可
之后一直Next,知道打包完毕,exe4j has finishied!
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0NzQwLnBuZw%3D%3D.png?w=700)
打包成功后的目录结构
打开exe4j软件,点击Next按钮,配置相关参数
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyLzIwMTgxMjI5MTIzNDM2LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTIzNTI0LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0NzE0LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM1MTI3LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTQwMzMxLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0MTMyLnBuZw%3D%3D.png?w=700)
如果是SpringBoot项目,请选择JarLauncher这个Main,否则启动会报错 !
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0MzEzLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM1MDA0LnBuZw%3D%3D.png?w=700)
之后一直Next,知道打包完毕,exe4j has finishied!
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0NzQwLnBuZw%3D%3D.png?w=700)
测试exe
测试之前,先把之前的测试jar进程关闭, 以免端口冲突
双击springboot-demo.exe运行,
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM1NjAxLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0OTQ5LTEwMjR4MjIyLnBuZw%3D%3D.png?w=700)
浏览器再次访问http://127.0.0.1:8080/web 测试
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1MTM2LnBuZw%3D%3D.png?w=700)
测试成功, 此时以及成功一半了!! ![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM0ODQxLTEwMjR4MzQ0LnBuZw%3D%3D.png?w=700)
特意挑了一台没有java环境的电脑运行,
注意看下方的运行动态链接库,执行的Java Library为我们copy的Jre路径.
但是此时还有一个问题 , 整个文件夹180MB,太大,下一步压缩封装jre
测试之前,先把之前的测试jar进程关闭, 以免端口冲突
双击springboot-demo.exe运行,
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM1NjAxLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI0OTQ5LTEwMjR4MjIyLnBuZw%3D%3D.png?w=700)
浏览器再次访问http://127.0.0.1:8080/web 测试
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1MTM2LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTM0ODQxLTEwMjR4MzQ0LnBuZw%3D%3D.png?w=700)
注意看下方的运行动态链接库,执行的Java Library为我们copy的Jre路径.
但是此时还有一个问题 , 整个文件夹180MB,太大,下一步压缩封装jre
封装jre环境
最好一部是将exe跟jre打包,让程序 可以在没有java运行环境下运行
打开InnoSetup,新建
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1NDEwLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1NDI4LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1NDQ5LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1NTQyLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTI1ODM4LTEwMjR4NTQ1LnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTMwMjMzLnBuZw%3D%3D.png?w=700)
![转 Java jar (SpringBoot Jar)转为win可执行的exe程序 转 Java jar (SpringBoot Jar)转为win可执行的exe程序](https://image.shishitao.com:8440/aHR0cDovL2ZpbGUudm9pZG0uY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE4LzEyL1RJTSVFNiU4OCVBQSVFNSU5QiVCRTIwMTgxMjI5MTMwMjE0LnBuZw%3D%3D.png?w=700)