东莞建设网站,南京建设银行公积金查询网站,论坛,手机端网站建设的费用清单前言
Windows系统使用java -jar m命令行运行Java项目会弹出黑窗。首先容易误点导致程序关闭#xff0c;其次我们希望能在Windows系统做到开机自动启动。因此对于SpringBoot程序#xff0c;目前主流的方法是采用winsw#xff0c;简单容易配置
1.下载winsw工具
https://git…前言
Windows系统使用java -jar m命令行运行Java项目会弹出黑窗。首先容易误点导致程序关闭其次我们希望能在Windows系统做到开机自动启动。因此对于SpringBoot程序目前主流的方法是采用winsw简单容易配置
1.下载winsw工具
https://github.com/winsw/winsw/releases
2.文件配置
修改WinSW和sample-minimal.xml名称
将下载的文件与jar文件放置在一起两个文件名修改为服务名(服务名自定义)
编辑xml文件
注意不要出现中文 arguments和logpath标签内的jar文件地址要改为自己的目录
service!-- ID of the service. It should be unique across the Windows system--idtestapp/id!-- Display name of the service --nametest service/name!-- Service description --descriptionThis service is a service created from a minimal configuration/descriptionenv nameJAVA_HOME value%JAVA_HOME%/executablejava/executablearguments-jar H:\testautostart\cxstar-api-rest-1.0.0.jar/argumentsstartmodeAutomatic/startmodelogpathH:\testautostart\logs/logpathlogmoderotate/logmode/servicelogmode日志输出模式默认为append官方文档
参数解析
标签名作用id服务ID在windows系统中必须唯一的系统标识name服务显示名称不能使用中文仅限英文、数字、横线等description服务描述描述服务的作用env设置环境变量executable启动可执行文件的路径如果配置了Java环境变量可以直接使用java替代。否则使用全路径(这里容易坑)arguments传递给可执行文件的参数startmode指定Windows服务的启动模式它可以是下列值之一开机、系统、自动或手动 默认值是“Automatic”logpath配置日志路径logmode日志输出模式默认为append
logmode
append 追加模式其特点是将日志文件全部输出在一个文件中这个文件可能会越来越大rotate旋转模式推荐当日志文件大小达到10兆默认值winsw会将日志重新输出到另外一份日志文件默认最多保留8个reset重置模式每次重启服务都会重置日志文件none忽略模式几乎不会生成日志文件
3.注册服务
当前目录输入cmd进入命令行模式执行服务注册命令
testapp.exe install服务中已经存在该服务 双击设置为自动即可
卸载服务
testapp.exe uninstall其他服务命令
testapp.exe start启动服务
testapp.exe stop停⽌服务
testapp.exe restart重启服务
testapp.exe status输出当前服务的状态关于在windows server 2008启动失败的问题
服务启动成功后自动关闭日志文件也没有生成。执行java -jar的命令服务可以正常启动。在控制面板—管理工具—事件查看器—window日志—应用程序—找出对应服务的日志。如下
Service cannot be started.
System.ComponentModel.Win32Exception: The system cannot find the file specified
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at winsw.WrapperService.StartProcess(Process processToStart, String arguments, String executable)
at winsw.WrapperService.OnStart(String[] _)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)提示很清楚系统没有找到指定文件而在winsw的xml文件中就已经配置了executable而且环境变量配置正确。那为什么还提示文件没有找到于是将java改为了全路径重新注册服务并成功启动服务