linux 部署jar包

news/2024/9/21 8:46:59

1.准备工作

linux如果没有配置java环境变量的话,具体操作见文末推荐。

2.启动jar包

linux操作系统下启动jar包的方式和windows操作系统没有区别。

用法都是遵循java语法规范。

前提:跳转到要启动的jar包所在目录

cd jar包所在绝对路径

使用默认jdk启动

查看当前jdk版本

java -versoin

 方式一:nohup不指定输出文件
nohup java -jar xxx.jar &

说明:nohup和&指令缺一不可。

nohup:这个命令使得你的应用在退出shell后仍然继续运行。

确保在SSH会话关闭后,程序仍然运行;否则,在关闭Xshell后,该程序将会终止运行。

如果不使用的话,在关闭Xshell后,该程序会被终止运行。

使用nohup启动的进程会忽略挂断信号,并且会将输出重定向到一个文件中,除非另行指定。

也就是说:

当我们使用nohup命令启动进程时,如果没有指定日志输出位置的话,它会在启动的时候自动创建nohup.out文件并将执行日志写入到该文件当中。

&:以后台守护进程的方式运行(后台运行),否则,当我们按Ctrl+c退出当前命令的话,该程序将会终止运行。

使用nohup,如果没有指定输出文件的话,会在当前目录下,自动生成nohup.out文件,并将日志写入到这个文件当中。

方式二:nohup指定输出文件
nohup java -jar xxx.jar > xxx.out 2>&1 &

如果想退出当前命令,按Ctrl+c。

java -jar xxx.jar:java运行jar的指令。

后面跟的日志文件,如果带路径会输出到指定目录下,如果不带路径,会输出到当前操作的目录下。

另外,如果日志文件不存在,会自动创建。

2>&1:这将标准错误重定向到标准输出的位置,也就是指前面的日志文件。

&:在命令的末尾,这个符号将命令放到后台运行。

说明:此命令必须带上,否则当你退出当前操作后,当前执行的命令会被终止。 

./connect-distributed.sh ../config/connect-distributed.properties &

使用上述命令启动后,会出现如下内容。

也就是:

执行日志会同时输出到屏幕上面。

虽然我们通过Ctrl+C退出,并不影响程序在后台继续运行。

只使用&,除了上面的缺点外,还有一个,那就是:

当我们关闭Xshell(SSH会话)后,该程序也会被终止。(SSH的英文全称是:secure Shell。它是一种网络协议,用于计算机之间的加密登录,并提供更安全的SFTP服务)

所以,nohup命令必须使用。

指定jdk启动

nohup /jdk绝对路径/bin/java -jar xxx.jar &

启动时指定文件字符集

nohup java -Dfile.encoding=utf-8 -jar xxx.jar &

启动时指定配置文件(springboot项目) 

有的时候,会遇到这种情况:

springboot项目的配置文件需要修改,但是,我们要不想重新打包,怎么办?

可以把修改后的application.yml文件放到和jar包同级目录下。

然后在启动项目的时候,指定使用该配置文件。

nohup java -jar xxx.jar --spring.config.additional-location=application文件所在绝对路径 &

与 --spring.config.location 不同,--spring.config.additional-location 不会使项目默认的配置文件失效,使用该命令行参数添加的外部配置文件会与项目默认的配置文件共同生效,形成互补配置,且其优先级是最高的,比所有默认配置文件的优先级都高。

通过这种方式,我们可以在不影响项目默认配置的情况下,添加特定于环境或特定部署的配置文件,以满足不同场景下的需求。

使用外部配置文件的好处是:我们可以将配置与代码分离,使得配置更易于管理和修改。同时,这也为多环境部署和应用程序的可移植性提供了便利。

虽然在启动的时候,默认配置文件是:jar包中的application-jxfy.yml,但实际使用的是外部application-jxfy2.yml。

启动时指定占用的端口号

nohup java -jar xxx.jar --server.port=端口号 &

查看启动/执行日志

tail -f 日志文件名称.后缀名

输入以上指令,并按Enter键执行。

说明:

在项目启动之后,我们通常需要查看运行日志,通过查看日志才方便我们判断项目是否启动成功。

退出当前命令

快捷键:Ctrl+c。

3.结束jar包运行

要想结束某个程序的运行,需要查看它所对应的进程ID,然后杀掉程序所对应的PID即可。

查看PID有两种方式。

方式一:根据项目jar包名称进行搜索,获取进程ID。

ps -ef|grep jar包的完整名称/部分名称

根据最后一列(CMD指令)找到自己要关闭程序,第二列就是对应的PID。

方式二:根据项目jar包所占用的端口,获取进程ID。

netstat -nltp|grep 要关闭的程序所使用的端口

由上图所知:

8058端口所对应PID为:3624

杀掉进程即可。

kill PID
kill -9 PID

kill -9 pid:表示强制杀死指定进程。

4.补充说明

java jps命令

说明:为了方便记忆,我们可以将jps认为是:键盘手。

如果在linux当中已经配置好了java环境变量,那我们就可以使用jps来查看当前所有运行的java进程及相关信息,

如:进程ID、主类名称和JVM参数等。

查看java运行的程序/进程

ps -ef|grep java

 

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

  • linux 配置java环境变量
  • linux部署nginx
  • Linux 常用操作命令
  • 个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/46959.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

我在美国退退退

Costco奇葩的退换货政策是全球闻名的。有人会问,任由消费者随意退换货,Costco不会亏损吗?商家愿意吗? 事实是,用户满意度极高的同时,Costco的业绩也在稳定增长。无数商家仍在打破脑袋,希望挤进Costco的选品清单。今年618期间,拼多多因为“客服宠粉”而冲上热搜。曾因“…

[HGAME 2023 week3]kunmusicin

这道题挺好玩的,坑了我几下,记录一下 题目下载得到3个文件 exe打开,不同按钮发出不同声音,除此之外就没有其他东西了 exe-Dieexe-IDA main函数,没有找到“唱”“跳”“篮球”之类的关键字符串 因为爆红,所以动调了一下,也没发现什么东西 string窗口也没有找到关键词语 …

机器学习--有监督学习--分类算法(KNN算法)

使用场景:做分类的,比如银行想做客户分类,看看新的这个客户,他是高风险用户还是低风险用户。 原理使用:可以用贝叶斯分类,决策树算法,还有KNN,本篇主要整理KNN。 KNN原理:有N个样本点,对新纪录r,使用KNN进行分类,看它属于哪个分类。具体如下: 1、先确定k值,不建议…

Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等

Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等点击项目浏览器右键点击选中,然后选择sql文件右键点击连接地址,选中【工具】,选中【创建新任务】填写信息,选中【执行SQL脚本】,然后【下一步】选中脚本文件点击确定选中数据库的连接地址,如果自动关联就无需修改至…

绿色免费离线版JS加密混淆工具 - 支持全景VR加密, 小程序js加密, H5网站加密

自从我们推出在线版的免费JS加密混淆工具以来,受到了广大用户的热烈欢迎。特别是全景开发人员,他们使用该工具加密VR插件的JS代码, 添加域名锁等,都非常有效地保护了插件的代码资源。 最近,我们收到了许多用户的反馈,大家希望能够提供一款桌面版的JS加密混淆工具,以便在离…

nginx四层+七层分享代理实现与tomcat多实例动静分离

实验架构图如下,最终实现负载均衡和动静分离:一、Tomcat 多实例 1.配置思路 1)修改 tomcat 主配置文件 server.xml 中的三个端口号 8080 8005 8009;2)修改 tomcat 启动停止脚本 startup.sh shutdown.sh,添加 export CATALINA BASE CATALINA HONE TOWCAT HOME 变量都指向实…

C# 模式匹配

C# 模式匹配https://www.geeksforgeeks.org/pattern-matching-in-c-sharp/ https://www.codeproject.com/Articles/5368148/Your-Quick-Guide-to-Pattern-Matching-in-Csharp什是模式匹配 模式匹配是一种在代码中识别和提取数据的机制。它允许您以声明式的方式检查对象的形状,而…