栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

5 分钟上手打包部署SpringBoot

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5 分钟上手打包部署SpringBoot

        可能有些小伙伴还不知道怎么去打包部署SpringBoot项目,接下来花 5 分钟教你怎么上手!话不多说直接上教程。

1.  首先我们要在 pom.xml 文件中导入 Springboot 的 maven 依赖



    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

2.   我们在打包 springBoot 项目的时候,我一般通过 Idea 的 Maven Projects 直接打包,当点击 package 执行完成后,会在你的项目下面生成一个 target 文件夹,该文件夹下包含项目的 jar 包。

3、如果在 windows 下运行 jar ,找到 jar 文件所在路径,打开 cmd 命令窗口,输入 Java -jar 后面接你 jar 包名称;

4、如果是在 Linux 下运行 jar,先将该 jar 上传至服务器,确保你的服务器安装 jdk。(输入 Java -version)

由图看出的 jdk 是 1.6,系统自带版本是不能运行当前 jar 的,我在放 jar 包的同级目录下,解压了一个 jdk1.8 的包,然后我们输入命令:

nohup /xxx/jdk1.8.0_11/bin/java -jar xxx.jar 	>/dev/null 2>&1  &

前面的 xxx 表示你 jdk 存放的路径,前面要带上/,要到 bin 目录下。

      我们为什么不直接使用 Java -jar 启动呢?为啥要加上 nohup 和>/dev/null 2>&1 和 &,接下来我们一一分析。

      直接运行 java -jar 命令来启动,但这样的话,该会话的终端窗口如果中断,程序也会挂掉,所以我们会采用 nohup 和 &组合命令来操作。

使用 nohup 运行程序:
   结果默认会输出到 nohup.out
          使用 Ctrl + C 发送 SIGINT 信号,程序关闭
          关闭 session 发送 SIGHUP 信号,程序免疫

使用 &后台运行程序:
   结果会输出到终端
          使用 Ctrl + C 发送 SIGINT 信号,程序免疫
          关闭 session 发送 SIGHUP 信号,程序关闭

        这种方式启动项目会默认生成一个 nohup.out 的文件来记录日志,而且这个文件太占磁盘空间,所以为了减少磁盘被大量消耗,设置启动项目时不输出 nohup.out 文件。

所以我们采用以下两种方式

# 把标准输出重定向到空设备,即只输出错误信息到日志文件
nohup /xxx/java -jar xxx.jar >/dev/null 2>log & 
# 把标准输出和标准错误全重定向到空设备,即不输出日志
nohup /xxx/java -jar xx.jar >/dev/null 2>&1 &

(1) >/dev/null

       这条命令的作用是将标准输出 1 重定向到/dev/null 中。 /dev/null 代表 linux 的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null 之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。

(2) 2>&1

      这条命令用到了重定向绑定,采用 &可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。

      linux 在执行 shell 命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1 的作用就是让标准输出重定向到/dev/null 中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null 中,错误输出同样也被丢弃了。执行了这条命令之后,该条 shell 命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。

好了,我们讲完怎么启动,那这个挂后台咋关掉呢?

#首先我们找到当前jar的pid
#输入命令
ps -ef|grep java #查看运行进程,找到该jar的Pid

然后我们就杀死当前这个进程

kill -9 xxxx #(该jar的Pid) 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444767.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号