java -jar命令详解

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

第1种

java -jar demo.jar

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

第2种

java -jar demo.jar &

第2种在第1种方式的基础上在命令的结尾增加了&,&表达的意思是在后台运行。

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

第3种

nohup java -jar demo.jar &

第3种在第2种方式的基础上,在命令的最前面增加了nohup。

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

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

第4种

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

第4种在第3种的基础上,在后面增加了>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 &

这里说下jar后面这串符号的意义 >/dev/null 2>&1 &

> 代表重定向到哪里,例如:echo "123" > /home/123.txt
/dev/null 代表空设备文件
2> 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"

最后一个&表示在后台运行。

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

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

/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。一般项目中定义中输出运行日志到指定地址,这样的话,就不需要再单独输出nohup.out文件,这种情况可以考虑使用这种。

我们可以把它写成一个脚本,不用每次都写一遍。新建start.sh,根据我上传的demo.jar,输出到1.txt中,具体脚本如下:

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

可以看到,上面的命令中我使用了Xms、Xmx、Dfile.encoding、spring.profiles.active等参数,那么java -jar可以添加什么参数,各自又能实现什么样的效果呢,且看下文:

-Xms 指定jvm运行最小运行堆内存,默认为物理内存1/64,用法 :-Xmx512m 注意:Xmx和512m中间不用添加空格

-Xmx 指定jvm运行最大运行堆内存,认物理内存1/4,用法: -Xmx1024m 注意:Xmx和1024m中间不用添加空格

--server.port 指定jar运行的port端口,用法:--server.port=8085

--spring.profiles.active=pro 指定运行的配置文件、环境,用法:--spring.profiles.active=prod

  • 21
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: nohup java -jar命令是在Linux系统中运行Java程序的命令。其中,nohup表示不挂断地运行命令,即使终端关闭也不会停止程序的运行;java表示运行Java程序;-jar表示运行一个打包成jar文件的Java程序。 具体来说,nohup java -jar命令可以在后台运行一个Java程序,而不会受到终端关闭等操作的影响。这对于需要长时间运行的程序非常有用,比如服务器端的应用程序。 需要注意的是,nohup java -jar命令需要在Linux系统中使用,而且需要安装Java环境。同时,需要将Java程序打包成jar文件才能使用该命令运行。 ### 回答2: nohup java -jar命令是一个常用的命令,用于在后台运行Java应用程序。它的作用是让Java应用程序在用户退出登录后继续运行,并且不受挂起信号的影响。 nohup命令是词组“no hang up”的缩写,表示不挂断。nohup命令后紧跟着的是要在后台运行的命令,本例中是java -jar命令。这个命令指定使用Java虚拟机(JVM)来运行一个以jar包形式打包的Java应用程序。 使用nohup java -jar命令有很多好处。首先,它可以让Java应用程序在后台持续运行,即使您退出了登录。其次,它可以防止Java应用程序被终止,即使系统发送了中断信号或挂起信号。此外,nohup命令还会将输出信息保存到一个文件中。默认情况下,该文件名为nohup.out,但是您可以使用重定向运算符(>)将它重定向到其他文件。 举个例子,如果您想在Linux系统上运行一个名为myapp.jarJava应用程序,您可以使用以下命令: nohup java -jar myapp.jar & 此命令将启动myapp.jar并将其放在后台运行,同时也将输出信息保存到nohup.out文件中。要停止该应用程序,请使用kill命令。 总之,nohup java -jar命令使得Java应用程序可以在后台持续运行,并且不会被系统中断。它是一个非常有用的命令,可以为Java开发者提供方便和保障。 ### 回答3: nohup java -jar命令是Linux系统中常用的命令,它可以让我们在后台运行Java应用程序。下面对该命令进行详细解析: 1. nohup命令 nohup是No Hang Up的缩写,意思是不挂断。它的作用是让我们在后台运行命令时,即使断开终端连接,命令还是能够继续运行,直到执行完毕。 2. java -jar命令 java -jar命令是运行Java应用程序的命令,其中-jar参数表示运行一个打包的Java应用程序。使用该命令可以忽略classpath环境变量和-classpath命令行选项,方便我们打包和运行Java应用程序。 3. 组合使用 nohup java -jar命令的组合使用,可以让我们在后台运行Java应用程序,且即使断开终端连接,应用程序也能够继续运行。使用该命令时,需要指定Java应用程序的jar包路径,如下所示: nohup java -jar /path/to/app.jar & 其中,&表示将命令放入后台运行。 除了上述常见用法外,nohup java -jar命令还可以搭配其他命令使用,如结合grep命令对Java应用程序输出的日志进行过滤,或者使用tee命令将日志保存到文件中。 总之,nohup java -jar命令是在Linux系统中常用的命令,它能够在后台运行Java应用程序,并且即使断开终端连接,应用程序也能够继续运行,非常方便实用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值