在这里通过举例:
将一个GUI界面工具生成jar包并使用exe可执行文件的过程来演示,其中也会附带打包过程中几种产生的问题。
注意:如果你的GUI工具存在以下问题:
1、程序运行正常,但打包过程中,出现程序包`com.sun.***`不存在
2、加载外部文件数据(例如字典文件),文件路径找不到
3、maven直接将程序中使用到的第三方包一并打包
4、程序一切运行正常,但将加载的第三方包的jar包生成的exe文件一同打包时仍然存在依赖报错
这里同样存在解决方案,不过文案先介绍一种成功的方式:
使用maven将第三方依赖包一同打包生成jar包,使用exe4j工具将jar包生成exe可执行文件。
一、EXE4J打包jar包,生成exe可执行文件
1、exe4j下载地址:https://www.ej-technologies.com/download/exe4j/files
下载太慢,附上网盘下载链接:
链接:https://pan.baidu.com/s/1JDpN70wxPBAqIPqijuOGiw提取码:6666
注意:exe4j 6.0 需要jdk1.8及以上版本。
由于CSDN版权限制,自己去搜License key。
名字和公司随便写,License key随便搜一下都能用,这里审核过不去
2、此处
开始IDEA中使用Maven来生成带第三方依赖的jar包
。maven的打包默认是不加载项目中使用到的第三方依赖的。
两种方式:添加pom代码,生成一份带依赖的jar包;或者生成exe时手动动添加所有依赖
- pom.xml文件中添加以下依赖:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<!--更改为自己的主函数启动类-->
<mainClass>com.bjwx.gui.ReqGui</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
二、打开exe4j工具开始执行生成exe文件操作
1、选择带第三方依赖的jar包进行加载
2、选择主函数所在启动类
三、介绍以下几种情况的解决方式:
需要注意以下几点:
1、程序运行正常,但打包过程中,出现程序包
com.sun.***
不存在
原因:util导包更换下,程序执行的时候一直没问题,但打包的时候就报异常。
处理如下:
2、加载外部文件数据(例如字典文件),文件路径找不到
1、exe文件生成之后,也是需要加载数据文件的,但IDEA工程内运行与exe执行相对于文件的搜索的位置是不一样的
,记得更改为exe文件能加载到的位置再生成jar包
2、需要加载外部数据文件的情况下,直接在exe4j软件内点击运行还是会报文件找不到
,这个只需要从文件夹内点击就不会报错。
3、maven直接将程序与程序中使用到的第三方包一并打包
注意:
1、不加pom.xml中需要添加的那部分代码
,默认生成的是不含有第三方依赖的,需要在exe4j中手动添加依赖(上面有指定步骤位置)*
。
2、添加代码之后会生成两个jar包
,注意使用工具加载时的选择。**
4、程序运行正常,但由加载的第三方包的jar包生成的exe文件一同打包时仍然存在依赖报错文章来源:https://www.toymoban.com/news/detail-821503.html
例如:这一部分我是完全正常操作,但还是出现这个POI操作excel的第三方包查找不到,问题在于POI的版本问题
文章来源地址https://www.toymoban.com/news/detail-821503.html
到了这里,关于exe4j打包生成exe文件详细使用教程,示例一个需要加载外部文件的GUI打包过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!