- Windows以服务方式运行Java程序
- 方式1:通过windows的startup自启动实现
- 方式2:通过winsw实现windows的服务注册与启动
Windows以服务方式运行Java程序
方式1:通过windows的startup自启动实现需求:客户有一个Java程序是运行在windows机器上,常会重启机器,希望能上面的Java程序随windows系统启动而自动启动。
可以通过windows的startup自启动功能实现,缺点:会以前端cmd命令窗口的方式打开,不算是真正的后台服务
做法如下(win10为例):
写好自己的程序脚本bat文件,然后将程序或快捷方式复制到windows10的用户下的启动文件夹目录,如:
C:UsersjxlhlAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
放置程序完成即可,就可以自动以cmd窗口的方式启动了.
缺点:开机之后会显示一个命令行窗口!而且这个窗口还不能关,一关程序就停
方式2:通过winsw实现windows的服务注册与启动这是本文重点内容,主要通过winsw实现windows的服务与注册,不限于Java,本文仅以Java程序做成自启动服务为例。
- ##下载winsw,WinSW.NET2.exe或WinSW.NET4.exe,视你的.net版本而定
https://github.com/winsw/winsw/releases https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW.NET2.exe https://github.com/winsw/winsw/releases/download/v2.11.0/WinSW.NET4.exe
- ##查看.net支持的版本,都没有就安装.NET Framework
通过在我的电脑上输入%systemroot%Microsoft.NetFramework,能判断出来
如以下的win7系统就认为支持WinSW.NET2.exe
以下的windows10就2个都支持,因此图通用性的话,就直接采用WinSW.NET2.exe吧
-
##将WinSW.NET2.exe或WinSW.NET4.exe复制到自定义的目录如:D:Dwinsw_java
-
##同目录下创建WinSW.NET2.xml。特别注意,xml和exe必须同名。
springboot_java springboot_java springboot_java start.bat D:winsw_java
参数说明:
workingdirectory:工作目录
env:环境变量参数
id,name,description:这里取成了一样即可,唯一名称,就是windows里面的服务的名称,如下图:
- ##编写几个bat脚本,用于注册服务,注销服务,启动服务,停止服务如下:
springboot_java-install.bat内容
WinSW.NET2.exe install pause
springboot_java-uninstall.bat内容
WinSW.NET2.exe uninstall pause
springboot_java-start.bat内容
WinSW.NET2.exe start pause
springboot_java-stop.bat内容
WinSW.NET2.exe stop pause
start.bat内容
cd ProxySocks5Server java ProxySocks5Server 1080
- ##双击springboot_java-install.bat进行服务的注册,成功后即可,重启电脑后,java服务将随系统的启动一起启动。
- ##如果希望取消注册此windows服务,双击springboot_java-uninstall.bat即可.



