首页 > 系统相关 >linux 部署jar包

linux 部署jar包

时间:2024-06-18 18:44:10浏览次数:12  
标签:java 配置文件 启动 部署 jar nohup linux 日志

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

 

 

写在最后

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

 相关推荐:

标签:java,配置文件,启动,部署,jar,nohup,linux,日志
From: https://www.cnblogs.com/Marydon20170307/p/18254930

相关文章

  • Linux 部署
    1、安装dotnet运行时输入dotnet--info有输出就按照好运行时了sudoaptinstalldotnet-sdk-6.0https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu2、运行dotnet应用https://learn.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-d......
  • Linux 虚拟网络 IPIP
    IPIPIPIP隧道是一种点对点的隧道协议,用于在IPv4网络上传输IPv4或IPv6数据包。IPIP隧道的工作原理是将源主机的IP数据包封装在一个新的IP数据包中,新的IP数据包的目的地址是隧道的另一端。在隧道的另一端,接收方将解封装原始IP数据包,并将其传递到目标主机。IPIP隧道可以在不同的......
  • win——cmd窗口下执行jar包 logger.info输出乱码
    1、问题描述执行jar包,在cmd窗口中执行jar包,看到输出中,logger.info的输出为乱码,而System.out.println()输出为正确的日志。2、问题处理2.1、窗口设置因为cmd默认的编码为GBK,jar包一般设置为UTF-8;在cmd窗口先输入:chcp65001(注意之间有空格)然后执行jar包命令:java-jar-Dfil......
  • Kubernetes 1.18 部署 Traefik2.0
    Kubernetes1.18部署Traefik2.0参考资料:Traefik2.0官方文档:https://doc.traefik.io/traefik/v2.0/Kubernetes1.18.3部署Traefik2.0:https://www.cnblogs.com/heian99/p/14608414.html1.Traefik介绍traefik是一款反向代理、负载均衡服务,使用golang实现的。和n......
  • kubernetes部署dashboard
    kubernetes部署dashboard1.简介Dashboard是基于网页的Kubernetes用户界面。你可以使用Dashboard将容器应用部署到Kubernetes集群中,也可以对容器应用排错,还能管理集群资源。你可以使用Dashboard获取运行在集群中的应用的概览信息,也可以创建或者修改Kubernetes......
  • Linux项目开发,你必须了解Systemd服务!
    1. Systemd 简介Systemd是什么,以前linux系统启动init机制,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。Systemd就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解......
  • 部署监控公司电脑桌面并截图保存至阿里云OSS(定时功能)
    importsocketimportuuidimportscheduleimportdatetimeimportpyautoguiimportloggingimportoss2importctypesimportosimporttimeimportshutil#阿里云OSS配置信息access_key_id='your_id'access_key_secret='your_secret'bucket_na......
  • Linux命令ldd:深入解析动态链接器依赖关系
    Linux命令ldd:深入解析动态链接器依赖关系在Linux系统中,ldd(ListDynamicDependencies)是一个强大的命令行工具,用于列出可执行文件或共享库所依赖的共享库。虽然ldd在数据处理和分析的直接用途上可能并不明显,但它对于系统管理员、软件开发者以及任何对系统底层工作感兴趣的人......
  • 探索Linux中的`ld`命令:链接器的奥秘
    探索Linux中的ld命令:链接器的奥秘在Linux系统中,ld命令是一个强大的工具,它作为链接器(Linker)的主要实现,负责将编译后的目标文件(objectfiles)链接成可执行文件或共享库。尽管ld在直接数据处理和分析中的用途可能不如其他工具那么直接,但它在软件构建过程中扮演着至关重要的角色......
  • PHP Linux安装扩展(编译安装)
    0x01下载包并解压http://pecl.php.net/package/mailparsetar-xzfmailparse.tgzcdmailparse0x02配置/www/server/php/74/bin/phpize./configure--with-php-config=/www/server/php/74/bin/php-config0x03编译并安装makesudomakeinstall0x04激活编辑php.......