SpringBoot项目制作exe执行文件与安装包
现需将Web项目打包成一个exe可执行文件的安装包,需要分别完成下面三步操作即可。
使用IDEA将项目转换为Jar包
通过exe4j工具将jar文件转换为'.exe'可执行文件
通过Inno Setup 生成 exe文件的 安装包
下面通过实际操作,详细的介绍一下这三个操作。其中包括Exe4j软件 和 Inno Setup 两个软件的使用介绍。
1、Web项目打包Jar包
exe4j在生成exe可执行文件时,是通过将我们的jar文件转换成的exe文件。所以第一步我们需要将我们的web项目打包成jar文件。
在IDEA中将项目打包为jar文件,在项目中可能还会涉及到很多第三方的依赖(pom.xml文件中导入的)。但是maven的打包默认是不加载项目中使用到的第三方依赖的。但是在exe4j生成exe可执行文件时,是需要所以所用到的jar。
上述问题有两种方式进行解决,分别是:1. 添加POM代码,生成一份带依赖的jar包 2.在生成exe执行文件时手动进行添加所以依赖。下面分别演示一下不同jar生成方式:
1.1.添加pom代码生成额外依赖的jar包
在pom.xml文件中添加下面依赖代码,使我们package进行打包时,生成两个jar包
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4.1</version> <configuration> <!--Maven来生成带第三方依赖的jar包--> <!-- get all project dependencies --> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <!-- MainClass in mainfest make executable jar --> <archive> <manifest> <!-- 更改为自己的主函数启动类 --> <mainClass>com.wxxssf.Application</mainClass> </manifest> </archive> <!-- not append assembly id in release file name --> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/resources/package.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
更新maven之后,在通过maven进行打包即可。打包完成之后,会在target包中生成两个jar文件,一个是默认项目的jar,另一个是我们项目中使用到的第三方依赖打包成的jar。这两个jar包在后续的exe制作中会用到。
*注:通过这种方式进行打包的方式,我没有测试成功 0.0 (后续在学习学习看是什么原因导致的),被迫无奈采用了第二种手动添加的方式。如果项目采用的第三方依赖比较多,第二种方式就会很麻烦,应为在exe4j中导入依赖时只能手动的一个一个依赖的添加进入。
1.2 方式二手动进行添加所以依赖
首先打开项目结构 Project Structure
选择Artifacts,进行打包jar。在右侧窗口中点击+,选择JAR,选择From modules with dependencies...
下面就是根据自己项目的实际情况进行设置了,设置完成之后OK即可。
*注:这里如果选择第一种 extract to the target JAR 的方式,在后续的exe制作中会有查询不到主类的情况出现,所以我这里选择了第二种方式,至于为什么会这样,我也待去找原因。
项目jar内容的准备工作 ,需要将右侧的外部jar 和 Web resource 双击到右边一起进行打包。选择完成之后 Apply 和 OK 即可。
将java项目转换为jar: 点击 Build Artifacts
项目打包完成之后,就可以在项目的目录结构中得到,打包好的jar文件以及外部jar和Manifest.mf文件
这些jar包在后续制作exe可执行文件时可以用到。
2、利用exe4j生成 ’.exe' 可执行文件
exe4j下载地址:ej-technologies - Java APM, Java Profiler, Java Installer Builder
下载过程很简单,就不演示了。下载完成之后就可以进行下面的操作:
1.打开exe4j,首页界面如下所示,可进行 Change License 的设置。注册码如下,随便选取一个即可。
L-g782dn2d-1f1yqxx1rv1sqdA-XVK258563F-1p4lv7mg7savA-XVK209982F-1y0i3h4ywx2h1A-XVK267351F-dpurrhnyarvaA-XVK204432F-1kkoilo1jy2h3rA-XVK246130F-1l7msieqiwqnqA-XVK249554F-pllh351kcke50A-XVK238729F-25yn13iea25iA-XVK222711F-134h5ta8yxbm0A-XVK275016F-15wjjcbn4tpjA-XVK275016F-15wjjcbn4tpj
2.下一步之后,选择‘ JAR in EXE ’ mode
3.设置应用信息
这里选择的这个输出路径,就是后续生成的exe可执行文件生成后保存的位置,同时该文件夹作为我们exe执行文件的根目录。后续我们还需要添加 jre文件(java运行环境) 以及 lib项目外部资源jar、项目jar文件等项目运行需要的相关文件数据。
4.可执行文件的配置
log日志文件夹的设置,其他没有展示的配置栏目,直接点击下一步即可<img src="./images/13.png">
4.导入Jar文件操作
在第一步生成项目jar包的操作中:导入程序jar有两种方式进行导出jar包。如果你没有通过在pom文件中添加代码将项目中使用到的第三方依赖打包成的jar 的方式进行打包,那么我们进进入如下操作:
我们将方式二手动进行添加所以依赖时产生的主类jar文件 以及 lib中的第三方依赖jar 全部拷贝到我们的exe执行文件根目录中。然后进行下面的操作。这种导入方式很不方便,exe4j不支持多个jar同时导入,需要一个一个的导入我们的jar文件,所有需要花一点时间!!
如果你选择的是直接将我们项目中使用到的第三方依赖打包成的jar,那么可进行如下操作。同样我们需要将主程序jar包和我二门的第三方依赖jar包 复制到我们的exe根目录中。然后在将主程序jar和第三方引用jar进行导入。
5.java运行环境的配置
配置jre的版本
导入本地jre文件。这里导入本地的目的是为了保证exe能在其他电脑(无jre环境)上也能正常运行,首先我们需要将jre文件保存到我们exe文件的根目录(即exe的导出目录,同jar一样保存到根目录中)
之后的其他步骤就默认即可。执行完成之后。在我们的exe输出目录(exe根目录)中就会存在一个exe执行文件。
到此利用exe4j生成exe可执行文件就成功了。点击.exe文件即可运行我们的项目。接下来就是将我们的项目exe文件封装成一个安装包。
3.通过Inno Setup 生成 exe文件的 安装包
首先需要下载Inno Setup。 下载地址:Inno Setup
安装过程很简单,就不做演示了。安装好Inno Setup 之后就进行exe文件的打包操作
新建安装包
NEXT
设置应用信息
NEXT
添加执行主程序
接下来就是连续的Next 知道我们的下面这步
设置完成之后就是NEXT--> Finish然后我们的脚本就会出现
在脚本文件中,我们还需要添加jre文件的信息
在头部信息中添加: define MyJreName "jre1.8.0_201"
在[Files]中添加下面信息:
Source: "[exe根目录]\jre1.8.0_201*"; DestDir: "{app}{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs
点击运行之后就会生成项目的exe文件安装包!!!
【结束!!】