Java 程序打包为exe可执行文件并安装为服务详细教程
·
Java 程序打包为exe可执行文件并安装为服务详细教程
- 无废话,直接开始
- 本文涉及到的软件下载地址
通过网盘分享的文件:
链接: https://pan.baidu.com/s/1PSlBMt7Qs4t9sM6KTHVN7A?pwd=dtmr 提取码: dtmr
一、打包成jar
- 使用maven或gradle打包为jar,此步骤略过
二、环境准备
1、下载并安装Launch4j
- 本文用的3.50,如下图

三、核心过程
1、准备工作
- 在文件夹建一个工作目录(文件系统创建,不是Launch4j),本文用的目录是
D:\temp\jar2exe - 将打包好的jar文件复制到工作目录,本文示例已将jar文件重命名为main.jar

2、Launch4j操作
2.1 Basic页
- 在output处填入生成的exe的放置位置
- 在jar处选择上述main.jar文件
- 其他的可以不填写:你有空可以自行研究下

- 如下图保存配置

- 保存后工作目录如下

2.2 Classpath页
- 通常SpringBoot 项目是配置好了主类的,不需要配置此步骤
- 其他项目请如页面根据实际情况填写Main Class
2.3 其他配置
- Header 处选择Console(本文运行为服务才这样,大多数SpringBoot项目应该是这样的)

- 如果你的服务需要指定环境变量,请在Set env. variables 页面设置
2.4 JRE 页
重要在JRE 处填写本地JDK的位置,如下图
2.5 打包
-
如下图,点击齿轮、保存配置,会自动完成打包,如下图

-
正常情况下工作目录会如下:

2.6 运行
- 你可以点击上图的蓝色运行符号运行,但更推荐在控制台自行启动运行
- 如下图,启动的是main.exe,一切正常
此时已经可以删除main.jar了
3、利用WinSW-net461包装为服务
3.1 准备工作
-
下载复制WinSW-net461.exe到工作目录

-
将WinSW-net461.exe重命名为
SysMainService.exe,即你的服务未来在Windows服务中的命名 -
新建配置文件
SysMainService.xml,与上述重命名的名称应一致,内容如下
<service>
<!-- 服务的唯一ID,在系统内必须唯一 -->
<id>SysMainService</id>
<!-- 在Windows服务管理器中显示的名称 -->
<name>NB IOT SysMain Application Service</name>
<!-- 服务的详细描述 -->
<description>NewBridge IOT MAIN Service Created via https://www.xujian.tech 。</description>
<!-- 指定要执行的命令,这里指向Launch4j生成的EXE文件 -->
<executable>main.exe</executable>
<!-- 如果需要,可以传递命令行参数给您的EXE -->
<!-- <arguments>your-arguments</arguments> -->
<!-- 启动模式: Automatic(自动) / Manual(手动) -->
<startmode>Automatic</startmode>
<!-- 启动失败时的处理策略 -->
<onfailure action="restart" delay="10 sec"/>
<onfailure action="restart" delay="30 sec"/>
<onfailure action="none" />
<!-- 日志文件存储目录 -->
<logpath>logs</logpath>
<!-- 日志模式,如按大小轮转 -->
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
</service>
- 完成上述目录后工作目录的情况如下:

3.2 安装服务
- 用管理员身份运行cmd

- cd 到工作目录

- 执行install命令
SysMainService.exe install
- 执行start命令(也可以到服务中执行)
SysMainService.exe start
- 正常情况如下图

- windows服务中的情况如下图:

四、验证
1. 查看日志
- 工作目录的logs文件夹下会打印日志,其中out日志是核心输出

2. 浏览器访问
- 根据你的
实际情况访问,SpringBoot的端口通常在application.properties等配置文件中配置
五、交流沟通
- 欢迎添加微信
xujian_cq沟通 - 本人同时提供软件开发和AI工程技术、网络(内网穿透)、企业信息查询等服务
更多推荐



所有评论(0)