admin 管理员组

文章数量: 887021

Windows以服务方式运行Java程序

  • Windows以服务方式运行Java程序
    • 方式1:通过windows的startup自启动实现
    • 方式2:通过winsw实现windows的服务注册与启动


Windows以服务方式运行Java程序

需求:客户有一个Java程序是运行在windows机器上,常会重启机器,希望能上面的Java程序随windows系统启动而自动启动。

方式1:通过windows的startup自启动实现

可以通过windows的startup自启动功能实现,缺点:会以前端cmd命令窗口的方式打开,不算是真正的后台服务

做法如下(win10为例):

写好自己的程序脚本bat文件,然后将程序或快捷方式复制到windows10的用户下的启动文件夹目录,如:

C:\Users\jxlhl\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

放置程序完成即可,就可以自动以cmd窗口的方式启动了.

缺点:开机之后会显示一个命令行窗口!而且这个窗口还不能关,一关程序就停

方式2:通过winsw实现windows的服务注册与启动

这是本文重点内容,主要通过winsw实现windows的服务与注册,不限于Java,本文仅以Java程序做成自启动服务为例。

  1. ##下载winsw,WinSW.NET2.exe或WinSW.NET4.exe,视你的版本而定
https://github/winsw/winsw/releases
https://github/winsw/winsw/releases/download/v2.11.0/WinSW.NET2.exe
https://github/winsw/winsw/releases/download/v2.11.0/WinSW.NET4.exe
  1. ##查看支持的版本,都没有就安装.NET Framework

通过在我的电脑上输入%systemroot%\Microsoft.Net\Framework,能判断出来

如以下的win7系统就认为支持WinSW.NET2.exe

以下的windows10就2个都支持,因此图通用性的话,就直接采用WinSW.NET2.exe吧

  1. ##将WinSW.NET2.exe或WinSW.NET4.exe复制到自定义的目录如:D:\D\winsw_java

  2. ##同目录下创建WinSW.NET2.xml。特别注意,xml和exe必须同名。

<service>
  <id>springboot_java</id>
  <name>springboot_java</name>
  <description>springboot_java</description>
  <env name="java_home" value="D:\liujinghua\develop\jdk\jdk1.8.0_161"/>
  <env name="classpath" value=".;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar;"/>
  <env name="path" value="%java_home%\bin;"/>
  <executable>start.bat</executable>
  <log mode="reset"></log>
  <workingdirectory>D:\winsw_java</workingdirectory>
</service>


参数说明:

workingdirectory:工作目录
env:环境变量参数
id,name,description:这里取成了一样即可,唯一名称,就是windows里面的服务的名称,如下图:

  1. ##编写几个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
  1. ##双击springboot_java-install.bat进行服务的注册,成功后即可,重启电脑后,java服务将随系统的启动一起启动
  2. ##如果希望取消注册此windows服务,双击springboot_java-uninstall.bat即可.

本文标签: 方式 程序 Windows java