分享好友 维修大全首页 维修大全分类 切换频道

吉日象维修app

jar文件怎么打开(Jar包程序部署后如何启动和停止)

2023-11-14940

现在Java Web开发一般都是用Springboot框架,部署应用时使用Jar包(Java ARchive),也就是Java归档文件,而不是使用War包(打包格式的Java web工程)。

jar文件怎么打开(Jar包程序部署后如何启动和停止)(1)

War包结构

Jar包和War包的主要区别就在于Jar包内部已经集成了Tomcat服务器,War包部署还需要先安装一个Tomcat服务。用jar部署java服务更加方便,也是大势所趋。在Linux服务器上部署完Jar包程序以后,该如何启动服务和停止服务呢?

Jar包的启动

在主机上先配置好Java的环境变量,之后就可以用java命令启动Jar包:

java -jar xxx.jar

在启动jar包的时候,通常需要设置很多与内存有关的参数,要详细了解Java启动内存参数,可以阅读前文《Java面试常见问题:JVM内存异常及内存参数设置》。常用的内存配置参数包括:

这样在Jar包的启动命令中要把所有参数都配置好,可要写不少字。

java -jar -XX:metaspaceSize=128m -XX:MaxmetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX: UseConcMarkSweepGC xxxService.jar

为了避免每次启动都打这么多字,我们可以把这一长串启动命令放在Shell脚本中运行。要启动Jar包服务只需要运行脚本就行。

Jar包启动脚本

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux/Unix系统的桥梁,有好多种不同版本的Shell。Ken Thompson 开发的 sh Shell是第一个 Unix Shell。

jar文件怎么打开(Jar包程序部署后如何启动和停止)(2)

美国计算机科学学者Kenneth Lane Thompson,1983年图灵奖得主,C语言前身B语言的作者,Unix发明人之一

在Linux上,最常用的Shell程序就是 bash。bash保持了对 sh Shell 的兼容性,是各种 Linux 发行版默认配置的 shell。下面我们就看一下如何用shell脚本实现Jar包启动。

#!/bin/shAPPDIR=`pwd`PIDFILE=$APPDIR/xxxService.pidif [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE"); thenecho "xxxService is already running..."exit 1finohup java -jar -XX:metaspaceSize=128m -XX:MaxmetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX: UseConcMarkSweepGC xxxService.jar > out.file 2>&1 & echo $! > $PIDFILEecho "start xxxService success..."

第一行脚本是说明shell程序所在的位置,基本上Linux系统都是一样的。

第二行脚本是用pwd指令获取当前路径。通常我们把这个shell脚本和Jar包文件会放在一个路径下,要特别注意pwd上面的不是单引号,而是键盘左上角的“点号”。APPDIR就是脚本所在的当前路径了。

第三行脚本定义了变量PIDFILE,指向文件名xxxService.pid,这个文件就是用来记录Jar包启动后的进程ID。这样将来就可以用进程ID来关闭Jar包服务了。

第四行脚本是判断是否xxxService程序已经运行了。

第5行到第7行脚本的含义:如果pid文件存在且对应进程也存在,那么说明Jar包已经启动了,不需要再重新启动,脚本退出运行。

如果Jar包尚未启动,则运行第8行脚本。省略掉Java启动内存设置参数,就是下面这样:

nohup java -jar xxxService.jar > out.file 2>&1 & echo $! > $PIDFILE

第8行脚本执行成功后,第9行脚本打印成功。另外我们还可以在当前目录下发现多了一个xxxService.pid文件。

Jar包停止运行

那么要如何关掉正在执行的Java进程呢,通常可以运行:

ps aux | grep xxxService

这句指令会列出所有带有xxxService字样的进程,在其中我们找到要关掉的进程ID,随后就用kill -9 pid可以杀死进程。kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。

不过有了启动脚本作为基础,我们不需要再费力去找进程ID。结合启动脚本,我们还可以设计下面这样一个停止脚本。

#!/bin/shAPPDIR=`pwd`PIDFILE=$APPDIR/xxxService.pidif [ ! -f "$PIDFILE" ] || ! kill -0 "$(cat "$PIDFILE")"; thenecho "xxxService not running..."elseecho "stopping xxxService..."PID="$(cat "$PIDFILE")"kill -9 $PIDrm "$PIDFILE"echo "...xxxService stopped"fi

这个停止脚本和启动脚本类似,这里就不再逐行解释了,如果大家有什么问题,可以在评论区留言。

我会持续更新关于物联网、云原生以及数字科技方面的文章,用简单的语言描述复杂的技术,也会偶尔发表一下对IT产业的看法。

举报
打赏
打赏主播是什么意思
打赏主播是指观众(用户)在观看网络直播节目时,自愿通过直播平台提供的支付渠道,将一定数额的金钱或虚拟礼物赠送给主播的行为

0评论2025-03-26870

主打是什么意思
“主打” 这个词常见的有以下几种意思:一、在商业、产品领域主要营销、重点推广当我们说某产品是公司的 “主打产品” 时,是指

0评论2025-03-26636

电台路是什么意思
“电台路” 通常是因与电台相关的因素而得名的道路,以下是一些具体例子:上海电台路:位于宝山区顾村镇,呈南北走向,南起宝安

0评论2025-03-26335

打狙的窍门是什么意思
“打狙的窍门” 通常是指在射击游戏或实际射击场景中,使用狙击步枪时能够提高射击准确性、效率和生存能力等的一些技巧和方法。

0评论2025-03-26647

路上的创作原声是什么意思
“路上的创作原声” 通常是指以 “在路上” 的状态、经历、感悟等为主题或灵感来源而创作的原始声音作品,在不同艺术领域有不同

0评论2025-03-26375

打印照片回执是什么意思
打印照片回执是指在完成照片拍摄并经相关系统审核通过后,将记录照片合格信息以及个人身份等相关内容的电子凭证,通过打印机输出

0评论2025-03-26283

棒打鸳鸯是什么意思
“棒打鸳鸯” 是一个汉语成语,意思是用木棒打散一对鸳鸯,比喻拆散恩爱的夫妻或情侣。该成语的来源和用法如下:来源与出处:出

0评论2025-03-26672

主打三棺是什么意思
“主打三棺” 是一种网络用语,用反语的方式讽刺人们没有正常的思维观念和底线。该梗起源于贴吧网友之间的讽刺话语,具体出自抗

0评论2025-03-26220

常用香料是什么意思
常用香料是指在烹饪、食品加工、香水制作、药品生产等领域中经常使用的具有独特香气和味道的物质。它们可以增添风味、改善气味、

0评论2025-03-26963

潮汕话香芋是什么意思
在潮汕话中,“香芋” 通常指的就是芋头。不过,潮汕方言中芋头的发音是 “麦筲”(mài shāo)。芋头在潮汕地区的饮食文化和民

0评论2025-03-26504

关于我们  |  网站留言
(c)2026 吉日象维修app www.mykuaidi.com