如何在Linux系统中使JAR文件在后台运行?

要在 Linux 中后台运行 JAR 文件,可以使用 nohup 命令和 & 符号。,,“bash,nohup java -jar yourfile.jar &,“,,这条命令会使 JAR 文件在终端关闭后继续运行。

在Linux环境中,运行Java应用程序通常涉及到使用JAR文件,JAR(Java ARchive)是一种包格式,用于聚合许多Java类文件和相关资源(如文本、图片等)成为一个单独的归档文件,对于需要长时间运行或作为服务运行的Java应用,将其配置为后台运行模式是非常重要的,以下是关于如何在Linux中将JAR文件设置为后台运行的详细指南。

准备工作

linux jar 后台运行

确保你的Linux系统已经安装了Java运行环境(JRE)或Java开发工具包(JDK),你可以通过以下命令检查:

java -version

如果未安装,可以使用系统的包管理器进行安装,在基于Debian的系统(如Ubuntu)上,你可以使用:

sudo apt-get update
sudo apt-get install default-jdk

创建一个简单的JAR文件

为了演示如何后台运行JAR文件,我们首先需要一个简单的Java程序,创建一个名为HelloWorld.java的文件,内容如下:

public class HelloWorld {
    public static void main(String[] args) {
        while (true) {
            try {
                System.out.println("Hello, World!");
                Thread.sleep(5000); // Sleep for 5 seconds
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

编译这个Java文件并打包成JAR文件:

javac HelloWorld.java
jar cvf HelloWorld.jar HelloWorld.class

后台运行JAR文件

有几种方法可以在Linux中后台运行JAR文件,下面是一些常见的方法:

方法一:使用& 符号

这是最简单的一种方法,通过在命令末尾添加& 符号,可以将命令放到后台执行。

linux jar 后台运行
nohup java -jar HelloWorld.jar &

nohup 命令用于忽略挂起信号,即使关闭终端会话,进程也会继续运行,输出将被重定向到nohup.out 文件中。

方法二:使用screentmux

screentmux 是两个常用的终端多路复用器,可以创建多个虚拟控制台会话,这对于管理和监控后台进程非常有用。

使用screen

1、启动一个新的screen 会话:

   screen -S mysession

2、在新的screen 会话中运行你的JAR文件:

   java -jar HelloWorld.jar

3、按Ctrl+A 然后D 键组合来分离会话,你可以在后台运行该进程。

linux jar 后台运行

4、要重新连接到该会话,使用:

   screen -r mysession

使用tmux

1、启动一个新的tmux 会话:

   tmux new -s mysession

2、在新的tmux 会话中运行你的JAR文件:

   java -jar HelloWorld.jar

3、按Ctrl+B 然后D 键组合来分离会话,你可以在后台运行该进程。

4、要重新连接到该会话,使用:

   tmux attach-session -t mysession

方法三:使用systemd 服务

对于生产环境,建议将JAR文件配置为系统服务,以便更好地管理和监控,下面是一个示例配置文件/etc/systemd/system/helloworld.service

[Unit]
Description=HelloWorld Java Application
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/java -jar /path/to/HelloWorld.jar
Restart=on-failure
User=your_username
Group=your_groupname
WorkingDirectory=/path/to/working/directory
StandardOutput=file:/var/log/helloworld.log
StandardError=file:/var/log/helloworld.err.log
[Install]
WantedBy=multi-user.target

保存文件后,重新加载systemd 配置并启动服务:

sudo systemctl daemon-reload
sudo systemctl start helloworld.service
sudo systemctl enable helloworld.service

验证和管理后台进程

无论你选择哪种方法,都可以通过以下命令来检查和管理后台进程:

查看正在运行的Java进程

  ps aux | grep java

杀死特定的Java进程

  kill <PID>

FAQs

Q1: 如何更改后台运行的JAR文件的日志输出?

A1: 你可以通过重定向标准输出和标准错误输出来更改日志文件的位置。

nohup java -jar HelloWorld.jar > /path/to/custom.log 2>&1 &

这将把标准输出和标准错误输出都重定向到/path/to/custom.log 文件中。

Q2: 如果我希望我的Java应用程序在系统重启后自动启动,该怎么办?

A2: 如果你使用的是systemd,可以通过在配置文件中的[Install] 部分添加WantedBy=multi-user.target 来实现这一点,然后使用sudo systemctl enable your_service_name.service 命令来启用服务,这样服务将在系统启动时自动运行。

各位小伙伴们,我刚刚为大家分享了有关“linux jar 后台运行”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1318543.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-11-15 20:15
下一篇 2024-11-15 20:17

相关推荐

  • 如何在Linux系统上安装FastDFS?

    fastdfs linux安装步骤包括:下载源码,解压,编译,配置nginx,启动tracker和storage服务。

    2024-12-23
    024
  • DEB是什么格式?探索Linux下的Debian软件包

    DEB格式是Debian系统及其衍生发行版(如Ubuntu)使用的一种软件包格式,通过封装机制打包软件的所有必要文件和信息。

    2024-12-22
    041
  • 如何在Linux系统上更改Chrome浏览器的默认字体?

    在Linux操作系统中,Google Chrome浏览器的字体显示问题是一个常见且令人头疼的问题,Chrome在不同操作系统上的字体渲染引擎不同,这导致了在Linux系统上可能会出现字体显示不正常的情况,本文将详细介绍如何在Linux系统中优化Chrome浏览器的字体显示效果,并提供一些实用的解决方案和技巧,一……

    2024-12-22
    01
  • 服务器好用操作系统有哪些推荐?

    在当今数字化时代,服务器操作系统的选择对于企业和个人用户来说至关重要,不同的操作系统具有不同的特点和优势,适用于不同的应用场景,本文将深入探讨几种主流的服务器操作系统,包括Linux发行版、Windows Server以及FreeBSD等,分析它们的特点、用途和适用场景,以帮助读者做出更合适的选择,一、Linu……

    2024-12-22
    08

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入