使用winsw.exe将jfinal web程序做成windows服务的方法

背景介绍

jfinal是一个很棒的框架,做一些中小型的网站完全够用,使用jfinal-undertow开发web程序,简直不要太简单,可以让你专注于自己的业务逻辑,不用为很多轮子的问题困扰。
但是我在实际使用中遇到一个问题,就是程序部署在用户的电脑上,这个电脑是日常要用的,而不是部署在服务器上,用户系统都是Windows的,程序用maven打包后,以启动脚本的方式运行起来(比如start.bat),很容易被关掉。
我想了两个解决办法,一个是用tomcat容器,缺点是不能用undertow了,而且还增加了很多配置操作,还要安装配置tomcat。一个是能不能将程序做成Windows服务?经过一番搜索和尝试,果然找到了一种很简洁的办法,感觉比使用tomcat的性价比要高。

点此查看参考文章

方法
  1. 下载WinSW.NET4.exe 并改成你自己的项目名称,比如: club.exe。放到已经打包好的程序的根目录下
    在这里插入图片描述
  2. 创建与项目同名的xml文件,内容参照以下格式,启动类名的地方改成你自己的:
<configuration>
  <id>club</id>
  <name>jfinal club</name>
  <description>jfinal club</description>
  <executable>java</executable>
  <logmode>rotate</logmode>
  <env name="MAIN_CLASS" value="com.your.company.config"/>
  <env name="JAVA_OPTS" value="-Xms256m -Xmx1024m"/>
  <env name="APP_BASE_PATH" value="%BASE%" />
  <env name="CP" value="%APP_BASE_PATH%\config;%APP_BASE_PATH%\lib\*" />
  <arguments>-Xverify:none %JAVA_OPTS% -cp %CP% %MAIN_CLASS%</arguments>
  <stopparentprocessfirst>true</stopparentprocessfirst>
</configuration>
  1. 以管理员身份运行cmd,并进入到项目文件夹。
    注册服务:club install
    移除服务:club uninstall
    运行服务:net start club
    停止服务:net stop club
  2. 如果上面步骤都运行成功了,到这一步,去windows服务里面就能看到jfinal club这个服务了。
  3. 我自己还遇到一个问题,如果你的程序在启动时用到了数据库连接,就可能遇到开机启动时程序这个服务先于数据库服务启动,导致程序启动失败的问题。这个问题的解决办法是把你的服务设置一下延迟启动,右键服务名称->属性->常规,设置延迟启动
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

角落工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值