jar 包、exe 与系统服务

jar 包怎么执行?除了 java -jar xxx.jar 的方式,还可以打包成exe、注册系统服务

1.使用专门软件,如 exe4j、jar2exe、j2ewiz、jsmooth,配置后执行即可生成。一般都是要指定运行时、jar包、主类。

2.使用 maven 的插件 launch4j-maven-plugin

3.使用 jdk 内置的 javapackager、jpackage、javafxpackager

javafxpackager -deploy -native image -appclass org.springframework.boot.loader.JarLauncher -srcdir D:\config -outdir D:\config\exe -outfile eurkaApp -name eurkaServer

4.不封装 exe,直接执行。可选的方案就是编写 shell 脚本或者使用 winsw

使用 winsw 运行程序时需编写运行程序的配置文件

    <service>
      <id>jenkins</id>
      <name>Jenkins</name>
      <description>This service runs Jenkins continuous integration system.</description>
      <env name="JENKINS_HOME" value="%BASE%"/>
      <executable>java</executable>
      <arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
      <logmode>rotate</logmode>
    </service>

然后使用 winsw install 即可以安装为系统服务。因版本差异,因此实际使用时需参照官方说明 https://github.com/winsw/winsw

 

系统服务如何注册呢?

 1.powshell 内置的 cmdlet

#PowerShell 6+ 中执行

#注册服务
New-Service -Name "YourServiceName" -BinaryPathName "Your/Absolute/Path/To/AppName.exe"
#删除服务(有的版本不可用)
Remove-Service -Name "YourServiceName"
#删除服务
sc.exe delete "YourServiceName"
#查找服务,可查看状态
Get-Service -Name "YourServiceName"
#或命令行运行 services.msc 查找
#启动服务
Start-Service -Name "YourServiceName"
#停止服务
Stop-Service -Name "YourServiceName"

2.使用 winsw

winsw install

 

posted @ 2021-08-14 22:00  小天儿  阅读(201)  评论(0)    收藏  举报