最近写了个小工具,但是java写的,给朋友用的时候不能直接用,因此学习了一下java打包成exe。
众所周知,java需要jvm环境,所以打包的时候需要把稍微轻一点的jre打包进去。接下来是详细步骤。
java程序打包成jar
这个在idea中就可以完成了,需要注意的是需要把依赖都打进去,俗称的胖包,这里用pom的插件,会比较方便。这里同时需要指定程序入口。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>程序入口</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
然后执行打包命令
mvn clean package
会获得一个jar-with-dependencies尾缀的胖包。
再准备jre文件,和刚才的jar放在同级目录里。我在下文重命名成jre文件了。
(jre文件一般在这个目录里)
安装exe4j
工具从官网即可下载,傻瓜式安装,不再赘述。
文件目录
因为后面使用的是相对路径,所以需要强调一下文件的位置
jre: 就是上面步骤复制过来,重命名的
SQLParse… : 就是上面打包的jar
其他是我程序需要读的文件,可以忽略。主要是jre 和 jar在一个层级里。
开始打包
license
这里change license,可以避免每次打开的一个报错。
![在这里
秘钥许可证
L-g782dn2d-1f1yqxx1rv1sqd
其他随便填
》下一步
这里需要写你的 程序名 和 exe输出的目录
》 next
填可执行文件的名字
然后点高级选项,选择 32/64
依次填vm parameter
右边的 + 号,添加 jar包。
选择jar包时,默认是全路径,需要把前面的删除,只留包名就行
记得写main class 这里在最开始打包的时候已经做过,保持一致。
》 next
这里是最低和最高版本
然后高级选项,search sequence
把三个原有的全部删除,添加自己的jre
注意 这里是相对路径
》 next
接下来全是next,没有特别的地方。exe文件就出现了。
发给别的时候,要带着jre文件,这样就在没有java环境的地方执行了。