Linux后台运行jar程序

简介: 【7月更文挑战第23天】

Linux后台运行jar程序

在Linux系统中,有时候我们需要将Java程序以后台进程的方式运行,以便在关闭终端或退出登录时仍然保持程序的运行状态。本文将介绍如何在Linux中后台运行一个Java的jar程序。

准备工作

在开始之前,确保您的Linux系统中已经安装了Java运行环境(JRE 或 JDK)。

步骤一:创建一个可执行的jar文件

首先,确保你已经编写了一个可执行的Java程序,并将其打包成一个jar文件。如果你已经有一个可执行的jar文件,可以跳过这一步。

shellCopy code
$ cd /path/to/your/java/project
$ javac YourProgram.java
$ jar cvfe YourProgram.jar YourProgram YourProgram.class

在上述代码片段中,YourProgram.java是你的Java程序文件,YourProgram是你的主类名,YourProgram.class是编译后的字节码文件。执行这些命令将创建一个名为YourProgram.jar的jar文件。

步骤二:在后台运行jar程序

要在后台运行jar程序,可以使用以下命令:

shellCopy code
$ nohup java -jar YourProgram.jar > output.log 2>&1 &

在上述命令中,nohup命令用于使程序忽略SIGHUP信号,并继续在后台运行。java -jar YourProgram.jar是运行jar程序的命令。> output.log将程序的标准输出重定向到一个名为output.log的文件。2>&1将标准错误输出重定向到和标准输出相同的地方。&用于将命令放入后台执行。 这样,您的jar程序就会在后台运行,并将输出写入output.log文件中。您可以使用tail -f output.log命令来查看实时日志。

步骤三:查看后台进程

可以使用以下命令来查看当前运行的后台进程:

shellCopy code
$ ps -ef | grep YourProgram.jar

上述命令会列出所有包含YourProgram.jar的进程。您可以根据需要杀死指定进程,使用kill命令,如下所示:

shellCopy code
$ kill process_id

在上述命令中,process_id是您要终止的进程的ID。 通过以上步骤,您就可以在Linux系统中成功地将一个Java的jar程序以后台进程的方式运行起来。

示例代码,以帮助理解:

shellCopy code
#!/bin/bash
# 进入jar程序所在的目录
cd /path/to/your/jar/program
# 检查程序是否已经在运行
if pgrep -f "YourProgram.jar" > /dev/null; then
  echo "程序已在后台运行。"
else
  # 启动jar程序
  nohup java -jar YourProgram.jar > output.log 2>&1 & 
  echo "程序已成功启动并在后台运行。"
fi

在上述示例代码中,我们首先通过cd命令进入了存放jar程序的目录。然后,使用pgrep命令检查是否已有同名的后台进程在运行。如果已经有同名的进程在运行,输出提示信息并结束脚本的执行。如果没有同名进程在运行,我们执行nohup java -jar YourProgram.jar > output.log 2>&1 &命令来启动jar程序,并将标准输出和标准错误输出重定向到output.log文件中。同时,使用nohup命令使程序忽略SIGHUP信号,并继续在后台运行。 将上述代码保存为一个shell脚本文件(例如run_program.sh),并给予执行权限(chmod +x run_program.sh)。然后,您可以通过在终端中运行./run_program.sh来执行该脚本。 对于该示例代码,假设您的jar程序文件名为YourProgram.jar,并且存放在/path/to/your/jar/program目录下。脚本会检测是否已有同名的后台进程在运行,如果没有则启动程序,并将输出日志写入output.log文件中。 请注意,示例代码中使用了绝对路径,您需要根据实际情况修改路径和文件名以适配您的jar程序。

jar是Java中的一个命令行工具,用于创建、查看和操作Java归档文件(JAR文件)。JAR(Java Archive)文件是一种特殊的压缩文件格式,可以方便地打包和分发Java程序中的类、资源文件和元数据等内容。 jar命令的基本语法如下:

plaintextCopy code
jar [选项] [jar文件] [输入文件]

以下是一些常用的jar命令选项:

  • c:创建新的JAR文件。
  • x:解压缩已有的JAR文件。
  • t:列出JAR文件中的内容。
  • u:更新JAR文件中的已有文件。
  • v:对操作进行详细输出,即显示每个文件的详细信息。
  • f:指定JAR文件的名称。 以下是jar命令的一些常见用法:
  1. 创建JAR文件:
shellCopy code
jar cf YourProgram.jar YourClass.class

上述命令将以YourClass.class文件创建一个名为YourProgram.jar的JAR文件。 2. 解压JAR文件:

shellCopy code
jar xf YourProgram.jar

上述命令将解压缩名为YourProgram.jar的JAR文件到当前目录。 3. 列出JAR文件中的内容:

shellCopy code
jar tf YourProgram.jar

上述命令将列出名为YourProgram.jar的JAR文件中的所有文件。 4. 向已有的JAR文件中添加文件:

shellCopy code
jar uf YourProgram.jar YourClass.class

上述命令将向名为YourProgram.jar的JAR文件中添加YourClass.class文件。 5. 查看JAR文件的详细信息:

shellCopy code
jar tvf YourProgram.jar

上述命令将显示名为YourProgram.jar的JAR文件的详细信息,包括每个文件的权限、大小和修改日期等。 jar命令不仅可以用于打包和解压JAR文件,还可以用于操作WAR文件(Web Application Archive)和EAR文件(Enterprise Application Archive)等。您可以通过添加不同的选项和参数来实现更多复杂的操作。

相关文章
|
3月前
|
Linux 网络安全 Python
linux后台运行命令screen的使用
linux后台运行命令screen的使用
387 2
linux后台运行命令screen的使用
|
2月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
176 6
|
3月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
628 2
|
3月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
66 2
|
1月前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
386 1
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
34 1
|
1月前
|
运维 Java Linux
Linux 下命令后台运行秘籍:无惧终端断开的魔法
本文详细介绍了在 Linux 系统下使命令不受终端断开影响、持续在后台运行的多种方法及其原理。包括使用 `nohup`、`setsid`、括号括起来、作业调度和 `screen` 等技巧,帮助读者提高工作效率,确保任务不被意外中断。
63 0
Linux 下命令后台运行秘籍:无惧终端断开的魔法
|
2月前
|
消息中间件 分布式计算 Java
Linux环境下 java程序提交spark任务到Yarn报错
Linux环境下 java程序提交spark任务到Yarn报错
41 5
|
3月前
|
Linux Windows Python
最新 Windows\Linux 后台运行程序注解
本文介绍了在Windows和Linux系统后台运行程序的方法,包括Linux系统中使用nohup命令和ps命令查看进程,以及Windows系统中通过编写bat文件和使用PowerShell启动隐藏窗口的程序,确保即使退出命令行界面程序也继续在后台运行。
|
4月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
453 2
[JarEditor]可直接修改jar包的IDEA插件