java程序打包成exe在无java环境执行

最近写了个小工具,但是java写的,给朋友用的时候不能直接用,因此学习了一下java打包成exe。

众所周知,java需要jvm环境,所以打包的时候需要把稍微轻一点的jre打包进去。接下来是详细步骤。

java程序打包成jar

这个在idea中就可以完成了,需要注意的是需要把依赖都打进去,俗称的胖包,这里用pom的插件,会比较方便。这里同时需要指定程序入口。

 <plugin>
                <artifactId>maven-assembly-pluginartifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependenciesdescriptorRef>
                    descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>程序入口mainClass>
                        manifest>
                    archive>
                configuration>
                <executions>
                    <execution>
                        <id>make-assemblyid>
                        <phase>packagephase>
                        <goals>
                            <goal>singlegoal>
                        goals>
                    execution>
                executions>
            plugin>

然后执行打包命令

mvn clean package

会获得一个jar-with-dependencies尾缀的胖包。

再准备jre文件,和刚才的jar放在同级目录里。我在下文重命名成jre文件了。

(jre文件一般在这个目录里)
java程序打包成exe在无java环境执行_第1张图片

安装exe4j

工具从官网即可下载,傻瓜式安装,不再赘述。

文件目录

因为后面使用的是相对路径,所以需要强调一下文件的位置
java程序打包成exe在无java环境执行_第2张图片
jre: 就是上面步骤复制过来,重命名的
SQLParse… : 就是上面打包的jar
其他是我程序需要读的文件,可以忽略。主要是jre 和 jar在一个层级里。

开始打包

license

这里change license,可以避免每次打开的一个报错。

![在这里java程序打包成exe在无java环境执行_第3张图片
秘钥许可证

L-g782dn2d-1f1yqxx1rv1sqd

其他随便填

》下一步

java程序打包成exe在无java环境执行_第4张图片

这里需要写你的 程序名 和 exe输出的目录

java程序打包成exe在无java环境执行_第5张图片

》 next

填可执行文件的名字
然后点高级选项,选择 32/64

java程序打包成exe在无java环境执行_第6张图片

依次填vm parameter
右边的 + 号,添加 jar包。

java程序打包成exe在无java环境执行_第7张图片

选择jar包时,默认是全路径,需要把前面的删除,只留包名就行
java程序打包成exe在无java环境执行_第8张图片

记得写main class 这里在最开始打包的时候已经做过,保持一致。

》 next

这里是最低和最高版本
然后高级选项,search sequence
java程序打包成exe在无java环境执行_第9张图片

把三个原有的全部删除,添加自己的jre
java程序打包成exe在无java环境执行_第10张图片

java程序打包成exe在无java环境执行_第11张图片

java程序打包成exe在无java环境执行_第12张图片

java程序打包成exe在无java环境执行_第13张图片
注意 这里是相对路径

》 next

接下来全是next,没有特别的地方。exe文件就出现了。

发给别的时候,要带着jre文件,这样就在没有java环境的地方执行了。

你可能感兴趣的:(案例&踩坑,java,开发语言)