Linux 下通过 java 命令启动 jar 包的几种常见方式

Linux下启动 jar 包的几种常见方式

方法一:直接启动 jar 包

java -jar XXX.jar
缺点:当前ssh窗口会被锁定,不能再操作其他命令,如果需要执行其他命令,则需要打断进程,可按CTRL + C打断程序运行,或直接关闭窗口,程序也会退出。

方法二:后台启动 jar 包

java -jar XXX.jar &

&代表在后台运行。

缺点:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

方法三:后台不挂断启动

nohup java -jar XXX.jar &

用 nohub 命令启动 jar 包,是在后台不挂断运行,关闭终端窗口或者 CTRL + C 命令也不会终止程序。
当用 nohub命令启动 jar 包的时候,如果不指定日志输出文件,则所有的输出都会被重定向到 nohub.out 的文件中。

方式四:指定日志输出的启动

nohup java -jar XXX.jar >log.out &

通过 >log.out 命令,将程序的日志输出重定向到 log.out 文件中。如果不指定日志输出文件,则会输出到 nohub 命令默认的输出文件,nohub.out 文件中。

方式五:指定配置文件启动

nohup java -jar XXX.jar --spring.profiles.active=pro >log.out &

通过 --spring profiles.active=pro 来指定,启动的的是application-pro.yml 或者 application-pro.properties 配置文件。

方式六:指定配置文件,使用系统默认的log配置,不另行指定日志输入

启动/opt/a/目录下的 test.jar ,配置文件使用 pro,日志使用配置文件默认配置,不单独指定。
nohup java -jar /opt/a/a.jar --spring.profiles.active=pro >/dev/null 2>&1 &

常见的文件描述符有如下:
stdin(标准输入)
stdout(标准输出)
stderr(标准错误)
> /dev/null
>代表重定向操作。将标准错误重定向到/dev/null ,即不输出错误信息。
>/dev/null 2>&1 & : 等同于 1>/dev/null 2>&1 &, 即把标准输出重定向到/dev/null,并且把标准错误2重定向标准输出1,即标准输出和标准错误都输出到 /dev/null。

方式七:指定分配系统资源大小

nohup java -Xms500m -Xmx500m -jar XXX.jar --spring.profiles.active=dev >log.out &

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 要在Linux后台运行Java JAR,可以使用以下命令: nohup java -jar your_jar_file.jar & 其中,nohup命令可以让程序在后台运行,即使终端关闭也不会停止运行。&符号可以让程序在后台运行,而不占用当前终端。 你需要将your_jar_file.jar替换为你要运行的JAR的文件名。如果JAR需要参数,可以在命令后面添加参数。 例如,如果你要运行名为myapp.jarJAR,并且需要传递参数arg1和arg2,可以使用以下命令: nohup java -jar myapp.jar arg1 arg2 & 这样,myapp.jar将在后台运行,并且可以接收arg1和arg2参数。 ### 回答2: 在Linux系统中,如果想要运行Javajar并且在后台运行,可以使用如下几种方法: 1. 使用nohup命令:nohup命令可以使进程在后台运行,即使关闭终端,进程也能继续运行。具体操作方式如下: ``` nohup java -jar jar路径 & ``` 说明: nohup:表示使用nohup命令运行程序; java -jar jar路径:表示运行Javajar路径; &:表示将进程转入后台运行。 2. 使用screen命令:screen命令可以创建一个虚拟终端,将进程放到该虚拟终端中运行,并在终端关闭时仍能保持运行。具体操作方式如下: ``` screen -S 进程名 java -jar jar路径 ``` 说明: screen -S 进程名:表示创建名为进程名的虚拟终端; java -jar jar路径:表示运行Javajar路径。 使用screen命令运行程序后,可以按下“Ctrl+A D”组合键退出虚拟终端,并在后台继续运行程序。 3. 使用后台服务:可以将Javajar成一个服务,在系统启动时自动运行该服务。具体操作方式如下: 编写服务脚本: 将以下内容保存为一个脚本文件,例如myservice: ``` #!/bin/sh ### BEGIN INIT INFO # Provides: myservice # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start or stop myservice # Description: Start or stop myservice ### END INIT INFO case "$1" in start) nohup java -jar jar路径 & echo "myservice started." ;; stop) ps -ef | grep java | grep jar路径 | awk '{print $2}' | xargs kill -9 echo "myservice stopped." ;; *) echo "Usage: /etc/init.d/myservice {start|stop}" exit 1 ;; esac exit 0 ``` 说明: 将java -jar jar路径替换为实际运行的Javajar路径; service脚本中start表示启动服务,stop表示停止服务; 安装服务: 将上述编写好的服务脚本myservice保存到/etc/init.d目录下,然后使用如下命令安装服务: ``` chmod +x /etc/init.d/myservice update-rc.d myservice defaults ``` 说明: chmod +x /etc/init.d/myservice:表示授权脚本执行权限; update-rc.d myservice defaults:表示将该服务添加到启动项,使系统启动时自动运行该服务。 最后,启动和停止服务可以使用如下命令: ``` service myservice start service myservice stop ``` 以上是在Linux系统中运行Javajar并在后台运行的几种方法,需要注意的是根据实际情况选择使用哪种方法。 ### 回答3: 在Linux系统下运行Java jar,可以通过使用命令行或者编写脚本的方式来实现。通常情况下,我们希望将Java应用程序运行在后台,以避免终端关闭或者操作系统的重启等情况导致进程被停止。下面是具体的操作步骤: 1. 开启终端,进入应用程序的目录。一般来说,Java应用程序是打jar文件的。所以首先需要切换到jar文件所在的目录。 2. 编写脚本文件。首先需要创建一个脚本文件如start.sh,然后在里面添加如下命令: nohup java -jar filename.jar > log.txt 2>&1 & 其中,nohup是一个常用的命令,它可以让进程在后台运行,即使终端关闭或登出,进程也能够持续运行。以filename.jar代表实际的jar文件名,log.txt是输出日志文件名,2>&1是将错误信息输出到标准输出中。 3. 运行脚本文件。打开终端,进入脚本所在的目录,然后运行如下命令: bash start.sh 这样就能够启动Java应用程序,并在后台运行了。此时可以使用ps命令查看进程的运行状态。 4. 停止Java应用程序。当需要终止Java应用程序时,可以使用kill命令,具体命令如下: ps -ef | grep filename.jar 找到进程号,然后使用kill命令停止程序: kill PID 其中PID代表实际的进程号。 总之,以上这些步骤可以帮助你在Linux系统下后台运行Java应用程序,并且能够方便地进行程序的终止和调试。如果需要更为复杂的操作,可以参考其他Linux相关的文档或者教程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛爷Abner

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值