第一种方法:
1, 准备工具
Hello.jar: 可运行的包。这里我的是最简单的say helloworld! Main函数所在类路径:org.springframework.boot.loader.JarLauncher(这个是一般springboot项目的启动类),
JavaService: 下载地址
http://download.forge.ow2.org/javaservice/JavaService_2_0_10-amd64.zip (WIN 64位)http://download.forge.ow2.org/javaservice/JavaService-2.0.10.zip (WIN 32位) JavaService 是一款能把 Java 应用程序做成 NT 服务的实用工具, 一般用于启动应用服务器.
2, 设置环境变量
环境变量1、JAVA_HOME: JDK 安装路径
环境变量2、JAR_HOME:JAR_HOME/bin为JAR包所在路径,即我们的工作路径。
3, 解压JavaService的zip 包,把 JavaService.exe和jar包 复制到 %JAR_HOME%/bin 目录下
4, 创建一个目录 %JAR_HOME%/logs,存放日志文件。
5, 打开 cmd(以管理员身份进行), 进入 %JAR_HOME%bin 目录, 执行命令:

JavaService.exe -install HelloWorld "%JAVA_HOME%/jre/bin/server/jvm.dll"
-Djava.class.path="%JAR_HOME%/bin/hello.jar;%JAVA_HOME%/lib/tools.jar"
-Xms64M –Xmx256M
-start org.springframework.boot.loader.JarLauncher
 -stop org.springframework.boot.loader.JarLauncher
-method systemExit
-out "%JAR_HOME%/logs/out.log"
-err "%JAR_HOME%/logs/err.log"
-current "%JAR_HOME%/bin"
-depends MySQL
-auto –overwrite

注:HelloWorld :服务名称(可自行修改);
-Xms64M –Xmx256M Java虚拟机支持的内存最小值和最大值;
-depends MySQL 为可选项(一般不加);
更详细情况查看:JavaService,zip 包中的文档。
具体命令行参数说明, 运行 JavaService.exe -help 查看
7, 当执行上述命令后出现 “The HelloWorld automatic service was successfully installed” 字样,则表示服务已经创建成功;
“net start HelloWord” - 启动服务,“net stop HelloWord” - 停止服务,“sc delete HelloWorld” -删除服务

##这里写了几个简易的安装,启动和关闭服务的脚本,只需将jar包,JavaService.exe,脚本文件和一个配置文件config.ini放在同一路径下即可,注意脚本必须在管理员权限下打开才行:

config.ini

//所要生成Windows服务的名字
 serviceName=HelloWorldService
 //Jar包的名字
 jarName=HelloWorld
 install.bat
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i
set path=%cd%
md "%path%/logs"
echo %serviceName%
echo %jarName%
echo %JAVA_HOME%
echo %path%
JavaService.exe -install %serviceName% "%JAVA_HOME%/jre/bin/server/jvm.dll" -Djava.class.path="%path%/%jarName%.jar;%JAVA_HOME%/lib/tools.jar" -Xms64M Xmx256M -start org.springframework.boot.loader.JarLauncher -stop org.springframework.boot.loader.JarLauncher -method systemExit -out "%JAR_HOME%/logs/out.log" -err "%JAR_HOME%/logs/err.log" -current "%path%" -auto -overwrite

startup.bat

@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i
net start %serviceName%
shutdown.bat
@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i
net stop %serviceName%

第二种方法:

1.在idea中用maven将程序打成jar,放到运行的目录中。

2.去github上面下载winsw:

https://github.com/kohsuke/winsw/releases

Windows jar java 服务 jar包服务_Windows jar java 服务

  1. 将WinSW.NET4.exe文件复制到java程序所在文件夹中
    4.将java程序重命名,去掉名称中的“.”。例如HelloWorld-1.0.jar ----> HelloWorld.jar
    5.将WinSW.exe重命名为HelloWorld.exe(和jar同名)
  2. 新建一个xml文件,命名为HelloWorld.xml,写入以下内容(还有一些参数自己去看github说明):
<service>
     <id>HelloWorld</id>
     <name>HelloWorld</name>
     <description>This is HelloWorld service.</description>
     <!-- java环境变量 -->
     <env name="JAVA_HOME" value="%JAVA_HOME%"/>
     <executable>java</executable>
    <arguments>-jar "E:\springboot\ HelloWorld.jar"</arguments>
     <!-- 开机启动 -->
     <startmode>Automatic</startmode>
     <!-- 日志配置 -->
     <logpath>%BASE%\log</logpath>
     <logmode>rotate</logmode>
 </service>

如果没有配置环境变量,直接将三个文件扔到java的bin目录下运行。去掉标签
7.命令行定位到当前目录,执行: test.exe install
8. 去windows服务列表中启动程序。
(如果需要更新程序,只需要先将服务停止,再将新文件重命名为HelloWorld.jar,最后启动服务就行了)

第三种方法(我认为最简单的方法):

1.去nssm官网下载你nssm工具

2.解压文件,选择64/32位程序打开,就会看到如下图示:

Windows jar java 服务 jar包服务_windows_02

界面显示很直接明了,一般输入这两个参数即可,有其他需要可自己配置