java -jar命令详解

文章介绍了使用java-jar命令执行JAR程序的五种常见方法,包括在前台和后台运行,以及如何利用nohup和start命令实现不挂断运行。还详细说明了如何处理输出重定向,特别是如何使用/dev/null丢弃输出。此外,提到了配置JVM堆内存和指定程序参数的方法。
摘要由CSDN通过智能技术生成

java -jar命令用于执行jar程序,常用的写法有5种:

第1种

java -jar demo.jar

用这种方法启动后,不能继续执行其它命令了,如果想要继续执行其它命令,需要退出当前命令运行窗口,会打断jar的运行,打断一般用ctrl+c | 关闭窗口

第2种

java -jar demo.jar &

& 表达的意思是在后台运行

这种方式可以避免打断后程序停止运行的问题,即是说可以在当前窗口运行其他命令。
但是 如果关闭当前窗口后程序会停止运行。

第3种

Linux下:nohup java -jar demo.jar &
Window下:start /B javaw -jar demo.jar >demo.log 2>&1

nohup | start 是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。

加了nohup | start 后,即使关掉命令窗口,后台程序demo.jar也会一直执行。

关闭需要杀死进程
Window:
打开命令行窗口 win+r cmd 输入netstat -ano | findStr "端口号"
在这里插入图片描述
打开任务管理器 Ctrl+shift+esc 点击详细信息
在这里插入图片描述
找到pid为19620的进程,然后杀死

Linux:
查看某个端口号的进程 sudo lsof -i :<端口号>

该命令将会输出类似以下的信息:

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    1234   user1  23u  IPv6  12345      0t0  TCP *:8080 (LISTEN)

根据pid杀死进程 sudo kill <PID>

第4种

nohup java -jar demo.jar >1.txt &

>1.txt 意思是将nohup java -jar demo.jar的运行内容重定向输出到1.txt文件中,即输出内容不打印到当前窗口上,而是输出到1.txt文件中。

第3种没有加 >1.txt,它的输出重定向到 nohup.out文件 中

nohup.out也就是nohup命令的默认输出文件

文件位于$HOME/nohup.out 文件中,比如用root执行,就会输出到/root/nohup.out。

第5种

nohup java -jar demo.jar >/dev/null 2>&1 &

解释 >/dev/null 2>&1 &

  1. > 代表重定向到哪里,例如:echo "123" > /home/123.txt
  2. /dev/null 代表空设备文件
  3. 2> 表示标准错误
  4. & 表示 等同于的意思,2>&1,表示2的输出重定向等同于1
  5. 1 表示标准输出,系统默认值是1,所以 >/dev/null 等同于 1>/dev/null
  6. 最后一个&表示在后台运行
/dev/null 是 Unix 类操作系统中的一个特殊文件,用于丢弃所有写入它的数据,并在读取时不提供任何数据。它通常用作“黑洞”或垃圾桶,用于丢弃不需要的输出或输入,使程序能够继续执行而不受所丢弃的数据的影响。

当程序将数据写入 /dev/null 时,它实际上将其发送到一个虚空中,数据被丢弃,永远不会再次出现。同样,当程序从 /dev/null 读取时,它不会收到任何数据,并且可以继续执行,就像收到了有效的输入一样。
总之,/dev/null 是程序员和系统管理员丢弃不需要数据并确保程序可以继续执行而不受其影响的有用工具。

这里再补充说下这几个数字代表的含义:

0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,是用户终端控制台)
2 标准错误(错误信息输出)

总结:将运行该jar包时产生的标准输出和标准错误输出到 /dev/null中 ,即丢弃该数据

可以配置的参数

-Xms1024m : 最小堆内存
-Xmx1024m : 最大堆内存
-Dfile.encoding=UTF-8 指定编码
--server.port=8085 指定jar运行的port端口
--spring.profiles.active=prod 指定运行的配置文件、环境

nohup java -Xms515m -Xmx1024m -jar -Dfile.encoding=UTF-8 demo.jar --spring.profiles.active=prod >/dev/null 2>&1 &

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值