使用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. 我自己还遇到一个问题,如果你的程序在启动时用到了数据库连接,就可能遇到开机启动时程序这个服务先于数据库服务启动,导致程序启动失败的问题。这个问题的解决办法是把你的服务设置一下延迟启动,右键服务名称->属性->常规,设置延迟启动
### 回答1: winsw.exe是一个用于将任何可执行文件转换为Windows服务的实用工具。它是一个开源项目,可以在Windows操作系统上使用使用winsw.exe可以方便地将任何可执行文件(如Java程序、Python脚本等)转换为Windows服务,这样可以在后台持续运行,而不需要用户登录。它提供了一种简单的方法来将应用程序绑定到操作系统服务管理器,从而使应用程序可以通过服务管理器来启动、停止和重启。 使用winsw.exe创建一个Windows服务非常简单。首先,你需要将winsw.exe复制到应用程序所在的目录。接下来,创建一个XML配置文件,描述应用程序的行为和路径。配置文件可以包含应用程序的启动参数、工作目录、日志文件等。然后,运行winsw.exe,指定配置文件作为参数。winsw.exe将读取配置文件,并为应用程序创建一个Windows服务。 通过将应用程序转换为Windows服务,可以在没有用户登录的情况下持续运行它,提高了应用程序的可靠性和稳定性。此外,使用服务管理器启动、停止和重启应用程序也更加方便。 总而言之,winsw.exe是一个用于将可执行文件转换为Windows服务的实用工具,它使得应用程序可以在后台持续运行,并通过服务管理器方便地启动、停止和重启。它对于需要在Windows操作系统上持续运行的应用程序非常有用。 ### 回答2: winsw.exe是一个第三方工具,用于将Java应用程序包装成Windows服务。它是一个可执行文件,可以将任何可执行的jar或exe文件安装成Windows服务。通过使用winsw,可以在Windows操作系统中以服务形式运行Java应用程序,从而实现自动启动、停止和重启等功能。 使用winsw非常简单。首先,需要将winsw.exe文件放置在与你的应用程序包相同的目录中。然后,可以根据winsw的配置文件来配置服务的各种参数,如服务名称、描述、工作目录、启动方式等。配置文件是一个XML文件,可以使用文本编辑器进行编辑。在配置文件中,可以指定应用程序的执行命令、工作目录、环境变量等。完成配置后,只需运行winsw即可将应用程序安装为Windows服务使用winsw安装的服务可以像其他Windows服务一样进行管理,并且可以通过服务管理器或命令行来进行启动、停止、重启等操作。此外,winsw还提供了日志文件,可以帮助我们跟踪和调试应用程序的运行情况。 总的来说,winsw是一个非常有用的工具,可以帮助我们在Windows操作系统中以服务的方式来运行Java应用程序。它简化了应用程序的部署和管理过程,提高了应用程序的稳定性和可靠性。如果你有需要将Java应用程序部署为Windows服务的需求,winsw将是一个很好的选择。 ### 回答3: Winsw.exe是一种用于将Java应用程序打包成Windows服务的实用程序。它是一个开源项目,可帮助开发人员在Windows环境中以服务的形式运行自己的Java应用程序Winsw.exe的主要功能是提供一个简单的包装器,用于将Java应用程序转换为Windows服务。它将Java应用程序打包成一个可执行文件,这个可执行文件可以像其他Windows服务一样通过服务管理器进行管理。 使用Winsw.exe可以带来许多好处。首先,它允许开发人员将自己的Java应用程序作为Windows服务运行,这意味着应用程序可以在后台运行,而不需要用户登录或启动命令提示符窗口。其次,通过使用Winsw.exe,开发人员可以像其他Windows服务一样监控和管理自己的应用程序,包括启动、停止和重新启动应用程序。此外,Winsw.exe还提供了一些扩展功能,如自动更新、日志记录和性能监控,可进一步增强应用程序的功能。 使用Winsw.exe打包Java应用程序作为Windows服务的过程相对简单。首先,开发人员需要下载和配置Winsw.exe。然后,将Winsw.exe复制到Java应用程序的目录中,并创建一个XML配置文件,其中包含有关如何运行应用程序的信息。最后,运行Winsw.exe,它将会安装应用程序Windows服务,并启动运行。 总之,Winsw.exe是一个非常有用的工具,可以将Java应用程序转换为Windows服务,从而使应用程序Windows环境中以服务的形式运行。它简化了应用程序的管理和部署,并为开发人员提供了许多扩展功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

角落工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值