spring boot jar包做成linux服务,window
-
如何将Spring boot项目打包:
在pom文件中加入如下配置:
image.png
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
然后在IDEA中打包,如下图点击右上角的下拉框选择“Edit Configurations ”
image.png image.png image.png
最后运行一下maven build,打好的jar包会生成到target目录下。
- linux上的服务
先把打好的jar包放到linux服务器的一个目录下,例如/opt/sms/,
使用ln -s 命令添加软链接,赋予该服务的执行权限。
ln -s /opt/sms/passwd.jar /etc/init.d/passwdService
chmod a+x /etc/init.d/passwdService
service passwdService start
如果遇到unable to find java错误,在放jar包的地方新增一个.conf文件,名字与jar包的名字相同。在该文件中写入JAVA_HOME变量,查找系统的JAVA_HOME可以使用echo $JAVA_HOME来查询。
echo $JAVA_HOME
vim passwd.conf
image.png
查看服务运行状态,关闭服务可以使用
service passwdService status
service passwdService stop
将springboot应用注册为windows服务
前言
springboot
应用可以打包成可运行的jar包运行,用java -jar myapp.jar
命令就可启动项目,但是在生产环境下,不可能启动项目就要开一个命令窗口,一般的方案是将应用设置成服务启动,如果打包成war
包形式,放在tomcat等web服务器里启动,则将tomcat设为服务即可,如果是jar
包,则该如何设置,spring
官方文档里推荐的是用winsw
这款工具。
winsw
winsw
是一款可将可执行程序安装成Windows Service
的开源小工具,官网地址:https://github.com/kohsuke/winsw
注意: 要使用winsw,电脑上必须已经安装`.NET framework`
下载
下载winsw:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/
,当前最新版本是1.19
,下载后得到:winsw-1.19-bin.exe
使用
-
1.为了方便,将打包的项目jar和winsw放在同一目录,我这里放在D盘
-
2.将
winsw-1.19-bin.exe
重命名为和myapp.jar
同名:myapp.exe
-
3.在当前目录下新建一个xml文件:
myapp.xml
,内容如下:<service> <id>myapp</id> <name>myapp</name> <description>This service runs myapp project.</description> <executable>java</executable> <arguments>-jar "myapp.jar"</arguments> <logmode>rotate</logmode> </service>
相关参数说明如下:
- id:id是安装成windows服务后的服务名,id必须是唯一的。
- name:name是服务的简写名字,name也必须是唯一的,这里我设为和id相同。
- description:服务的文字说明。
- executable:执行的命令,因为启动springboot应用的命令是
java -jar myapp.jar
,所以这里写java,如果java没有安装到系统path里,则这里必须全路径。 - arguments:命令执行参数, 如果端口号要在这里设置,可以在后面添上:
--server.port=8080
- 当然还有其它属性,请参考官网上的说明。
-
4.运行以下命令,将应用注册为服务:
myapp.exe install
-
5.运行上面的命令后,在windows的服务里面能看到名为
myapp
的服务,到此安装成功。 -
6.除了
install
命令外,还有其它命令:- uninstall:删除服务
- start:启动服务
- stop:停止服务
- restart:重启服务
- status:输出当前服务的状态