您的位置:澳门新葡8455最新网站 > 编程教学 > Boot的Jar包在linux服务器的铺排公布,一篇有关M

Boot的Jar包在linux服务器的铺排公布,一篇有关M

发布时间:2019-10-05 16:06编辑:编程教学浏览(163)

    笔者最近遇到一个问题,springboot 打成jar后 在服务器上,使用java -jar xxxx.jar启动后,一旦断开窗口的链接,启动的服务便会停掉。

    一篇关于Maven项目的jar包Shell启动脚本,mavenjar

         使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都是很零散,没有设计到应用场景,这里打算个人总结一下,一方面作为自己的学习笔记,另一方面作为大家的技术分享

    图片 1

    这里是我写好的一个项目的启动脚本,这里需要注意几个地方

    1:wins的编辑器,换行符是rn,而linux的换行符是n,所以在我们编辑好了.sh的启动脚本后,会发现在linux上启动会出现 {r 不是内部命令,xxxx行脚本出错,这里作为开发者一定要注意,那么,怎么解决呢,使用notePad++打开。选择----》视图-----》符号显示----------》显示所有符号

    图片 2

     

    然后打开查找替换如下

     

    图片 3

    替换完成后。显示如下:

    图片 4

    对比第一张图显示,换行符是不是不一样了呢?

    下面讲解一下,启动脚本的一些参数,和启动命令

    SERVER=/usr/local/netty/mqtt           这里是我们打包的jar包的存放路径

    echo                                                   控制台输出的提示符,就像我们的Syste.out.println()

     JAVA_HOME                                     JDK安装路径

    cd                                                       切换目录

    classPath                                           jar包存放目录

    nohup                                                linux执行命令

    java -cp top-transfer.jar com.top.application.mqtt.activit.ActivitReceiveTopic start &                      java虚拟机启动main方法命令

    注释:java -cp top-transfer.jar com.top.application.mqtt.activit.ActivitReceiveTopic start  也可以单独的作为mian方法的启动命令,只是这种启动方式,不是以进程的方式启动,当我们关闭控制台的时候进程也就关闭了,启动的进程也随之关闭,程序就不继续运行了。

    下面我们来说明一下,Maven工程的打包方式,如上所述,maven工程必然会引用很多其他的jar包依赖,这个时候我们需要把第三方的jar包引用同时打包到我们的工程里面,这方便Mavne已经做好了插件

    常用的插件maven-assembly-plugin,这个普及度比较高。

    我们在pom.xml中添加如下代码

    图片 5

    我们对开发完成的项目进行maven打包

    图片 6

     

     Run后看到如下提示信息

    图片 7

    BUILD SUCCESS说明打包成功,找到打包好的目录,看到出现了两个jar包,我们反编译去看看jar包的内容

     图片 8

    反编译结果如下,发现第一个包没有jar包依赖

    图片 9

    查看第二个包,如下包括我们的配置文件,第三方jar包都被打包进来了。

    图片 10

     

     我们在注意看,在jar包中有一个MANIFEST.MF的文件,发现这个文件里路了我们打包好的jar包的配置信息,就相当于说明书一样。

    我们在注意看上面说到的打包插件中有这样一行带代码

    图片 11

    在mainClass标签中制定我们的jar包main方法,在期内添加main方法

    图片 12

    然后我们重新打包,反编译第二个jar包

    图片 13

    多了main方法,这样我们就制定jar包的启动窗口。至此打包完成

    在linux 我们还要使用 chmod a+x startup.sh 把编辑好的脚本添加到linux的北部shell启动脚本中。

    然后执行   ./startup.sh ,大功告成。

     

    使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,...

    经过尝试后,采用写shell脚本的方式去 启动,停止以及检查服务的状态,下面是分享的几个脚本。

    首先我将要发布的jar包, 放在了/var/apps下面。

    启动服务 start.sh
    #!/bin/shrm -f tpidnohup java -jar /var/apps/mytest.jar --spring.config.location=application.yml > /dev/null 2>&1 &echo $! > tpidecho Start Success!
    
    停止服务 stop.sh
    #!/bin/shAPP_NAME=mytesttpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpidfisleep 5tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpidelse echo 'Stop Success!'fi
    
    检查状态 check.sh
    #!/bin/shAPP_NAME=mytesttpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`if [ ${tpid} ]; then echo 'App is running.'else echo 'App is NOT running.'fi
    

    这样即使断开窗口的链接,服务还在保持运行~

    今天的分享希望对你有用,每天分享一点点

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:Boot的Jar包在linux服务器的铺排公布,一篇有关M

    关键词: