SpringBoot通过jar包部署到linux服务器上(CentOS)

工具:阿里云的CentOS7

一. 项目打包

1.可以直接在IDEA中打包
在这里插入图片描述
完成后,在项目的target文件目录里可以找到jar包
在这里插入图片描述
2.另一种方法是在cmd中切换到项目所在目录,然后执行mvn package 或者mvn clean package。

二.部署

1.将jar包通过工具上传到服务器上
在这里插入图片描述
SpringBoot默认集成了tomcat容器,只要打成jar包,就不需要再在服务器上配置tomcat等web容器,体现了SpringBoot的微服务的概念。
2.确保服务器上有jdk环境
输入命令:

nohup java -jar xxx.jar >> xx.log 2>&1 &

jar包名称换成自己的, >> xx.log是重定向输出日志
成功会有进程号
在这里插入图片描述
完成部署。

三.查看

查看进程号

ps -ef | grep java

在这里插入图片描述
如果要删除这个进程或者更新,先杀死对应的进程,再重新部署

kill 进程号
四.注意

1.确保阿里云服务器开放了相应端口,可以在官网的安全组进行设置

2.部署的命令
(1)临时部署,如果我们关掉了xshell之类的页面,该程序就会停掉:

java -jar  xxx.jar

(2)使用nohup对它进行后台运行, &为后台运行指令,关掉xshell仍可以执行:

nohup java -jar xxx.jar &
退出: ctrl + c
完成部署

在这里插入图片描述


用上述命令会出现nohup: ignoring input and appending output to ‘nohup.out’ 这样的提示。
即:忽略输入并将输出追加到’ nohup.out
解决:

  • 如果不想输出到nohup.out,我们可以通过重定向指定输出的日志文件:
nohup java -jar xxx.jar >> xx.log &
  • 如果不需要该日志,Linux下还有一个特殊的文件/dev/null,它就像一个黑洞,所有重定向到它的信息都会消失,因此可以考虑直接将日志打到黑洞里面。
nohup java -jar xxx.jar > /dev/null &

此时又会提示nohup: ignoring input and redirecting stderr to stdout
即:nohup:忽略输入并将stderr重定向到stdout
如果想去掉提示则执行:

nohup java -jar xxx.jar > xx.log 2>&1 &

其中2>&1的意思:这个意思是把标准错误重定向到标准输出中
Linux中0、1和2分别表示标准输入、标准输出和标准错误信息输出

注意:此处的> xx.log 2>&1顺序不能更改,否则达不到想要的效果

3.报错:no main manifest attribute
参考文章:执行Jar包报错:no main manifest attribute以及spring-boot-maven-plugin报红问题


参考:
https://blog.csdn.net/qq_33206732/article/details/79171393

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值