Linux后台运行jar程序的流程步骤

 更新时间:2024年09月22日 11:02:34   作者:牛肉胡辣汤  
在Linux系统中,有时候我们需要将Java程序以后台进程的方式运行,以便在关闭终端或退出登录时仍然保持程序的运行状态,本文将介绍如何在Linux中后台运行一个Java的jar程序,需要的朋友可以参考下

准备工作

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

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

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

$ 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程序,可以使用以下命令:

$ 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命令来查看实时日志。

步骤三:查看后台进程

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

$ ps -ef | grep YourProgram.jar

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

$ kill process_id

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

示例代码,以帮助理解:

#!/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命令的基本语法如下:

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

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

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

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

  • 解压JAR文件:
jar xf YourProgram.jar

上述命令将解压缩名为YourProgram.jar的JAR文件到当前目录。

  • 列出JAR文件中的内容:
jar tf YourProgram.jar

上述命令将列出名为YourProgram.jar的JAR文件中的所有文件。

  • 向已有的JAR文件中添加文件:
jar uf YourProgram.jar YourClass.class

上述命令将向名为YourProgram.jar的JAR文件中添加YourClass.class文件。

  • 查看JAR文件的详细信息:
jar tvf YourProgram.jar

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

到此这篇关于Linux后台运行jar程序的流程步骤的文章就介绍到这了,更多相关Linux后台运行jar程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解CentOS7使用firewalld打开关闭防火墙与端口

    详解CentOS7使用firewalld打开关闭防火墙与端口

    本篇文章主要介绍了CentOS7使用firewalld打开关闭防火墙与端口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • 详解linux下安装python3环境

    详解linux下安装python3环境

    这篇文章主要介绍了详解linux下安装python环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Apache POI案例代码详解

    Apache POI案例代码详解

    Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目,可以使用POI在Java程序中对Miscrosoft Office各种文件进行读写操作,本文介绍Apache POI案例代码,感兴趣的朋友一起看看吧
    2024-04-04
  • 在linux中用同一个版本的R 同时安装 Seurat2 和 Seurat3的教程

    在linux中用同一个版本的R 同时安装 Seurat2 和 Seurat3的教程

    这篇文章主要介绍了在linux中用同一个版本的R 同时安装 Seurat2 和 Seurat3的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Apache简介及安全配置方案

    Apache简介及安全配置方案

    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
    2014-08-08
  • linux日志轮询方案

    linux日志轮询方案

    Linux系统中的日志文件会随时间增长,手动清理较为繁琐,logrotate程序可自动执行日志文件的轮换、压缩、删除和邮件发送,节省磁盘空间,logrotate基于crontab运行,调用配置文件/etc/logrotate.conf,用户可在/etc/logrotate.d目录放置自定义配置文件
    2024-10-10
  • 在Linux分区或逻辑卷中创建文件系统的方法

    在Linux分区或逻辑卷中创建文件系统的方法

    这篇文章主要给大家介绍了关于如何在Linux分区或逻辑卷中创建文件系统的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • centos6.5下svn的使用说明

    centos6.5下svn的使用说明

    这篇文章主要介绍了centos6.5下svn的使用说明的相关资料,方法非常的实用,有需要的小伙伴可以参考下
    2016-10-10
  • ubuntu下安装程序的三种方法总结(推荐)

    ubuntu下安装程序的三种方法总结(推荐)

    下面小编就为大家带来一篇ubuntu下安装程序的三种方法总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 详解CentOs设置静态IP的方法

    详解CentOs设置静态IP的方法

    这篇文章主要介绍了详解CentOs设置静态IP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论