Windows部署Jar包的三种方式

1、cmd命令启动

这种方式比较简单,但是窗口关闭后服务也就被杀死了,命令如下

java -jar xxx.jar

2、bat脚本启动

2.1 启动jar包

新建一个bat脚本,内容如下:

@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
java -jar F:IdeaProjectsim-api	argetim-api-0.0.1-SNAPSHOT.jar > imApiLog.log  2>&1 &
exit

其中F:IdeaProjectsim-api argetim-api-0.0.1-SNAPSHOT.jar是我jar包的绝对路径,imApiLog.log将日志存储到该文件。右键该bat文件以管理员方式运行即可。

注:听大佬超的,bat文件路径不要有空格,jar包路径别有中文,否则会出现Error: Unable to access jarfile。


2.2 关闭服务

根据项目的端口号,查看端口进程,然后杀死进程即可

netstat -ano|findstr 8088 # 根据端口号查进程
taskkill /f /pid 13968   # 根据进程id杀进程(/f:强制结束该进程以及所有子进程)

以上两种方式都有点不太利于后期维护,请接着往下看。


3、使用WinSW

地址:,我这里选择版本。下载WinSW-x64.exe(根据自己的系统版本选择)和sample-minimal.xml,如下

sample-minimal.xml 是一个最小配置的示例,sample-allOptions.xml 是一个全部可配置参数的示例。

3.1 重命名

为了方便,首先将exe和xml文件放到和jar包一个目录,并根据自己需要进行重命名,如下


3.2 xml配置

<service> 
     <!-- 服务唯一ID -->
     <id>imApiId</id>
     <!-- 服务名称-->
     <name>imApiService</name>
     <!-- 服务描述-->
     <description>this is im api,author:chaodev</description>
     <executable>java</executable> 
     <arguments>-jar imApi.jar</arguments>
     <!-- 开机启动 -->
     <startmode>Automatic</startmode>
     <!-- 日志配置 -->
     <logpath>%BASE%logs</logpath>
     <logmode>rotate</logmode>
 </service>

参数说明如下:

    id:安装windows服务后的服务ID,必须是唯一的。 name:服务名称,也必须是唯一的。 executable:执行的命令,如启动命令java。 arguments:命令执行参数,如指定虚拟机参数,配置文件路径等。 startmode:启动模式,如开机启动Automatic。 logpath:日志路径,%BASE%代表相对路径,也就是当前目录。

3.3 安装服务

切换到exe所在目录,执行如下命令

imApiService.exe install #根据自己exe文件名称修改

安装后即可在系统服务里找到该服务,如下


3.4 卸载服务

利用uninstall命令即可,如下

imApiService.exe uninstall

3.5 启动和停止服务

除了直接在系统服务界面手动点击控制启动停止外,还可使用如下命令

xxx.exe start #启动服务
xxx.exe stop #停止服务
xxx.exe restart #重启服务
xxx.exe status #查看状态

如下



经验分享 程序员 微信小程序 职场和发展