菜鸟科技网

jar安装命令具体怎么用?

核心概念:什么是 "安装"?

在 Java 生态中,"安装" JAR 文件通常不是像 Windows 软件那样运行一个安装程序,它的含义有以下几种:

jar安装命令具体怎么用?-图1
(图片来源网络,侵删)
  1. 直接运行:最简单的方式,直接在命令行中执行 JAR 文件,程序运行完即结束(除非是后台服务)。
  2. 设置环境变量:将 JAR 文件所在目录添加到系统的 PATH 环境变量中,这样你就可以从任何位置通过一个简短的命令来运行它。
  3. 作为服务安装:将 Java 应用程序作为系统服务(如 Windows 的服务或 Linux 的 systemd 服务)来运行,使其在后台自动启动、停止和重启。
  4. 使用包管理器:在 Linux 系统上,使用 apt, yum 等工具来安装和管理。

下面我们详细介绍每种情况的命令和方法。


直接运行 JAR 文件

这是最基本、最常用的方法,前提是你的系统已经安装了 Java 运行环境 (JRE) 或 Java 开发工具包 (JDK)。

基本命令

java -jar yourfile.jar

命令解释:

  • java: 这是启动 Java 虚拟机 (JVM) 的命令。
  • -jar: 这是一个参数,告诉 Java 命令要执行一个 JAR 文件。
  • yourfile.jar: 这是你要运行的 JAR 文件的名称。

示例: 假设你有一个名为 my-app.jar 的文件,在当前目录下,你可以运行:

jar安装命令具体怎么用?-图2
(图片来源网络,侵删)
java -jar my-app.jar

传递参数给程序

如果你的程序需要接受命令行参数,可以直接在 JAR 文件名后面添加。

示例: 一个程序需要一个配置文件路径作为参数。

java -jar my-app.jar --config /path/to/config.properties

指定 JVM 内存大小

对于大型应用,你可能需要为 JVM 分配更多内存。

示例: 设置最大堆内存为 1GB,初始堆内存为 512MB。

jar安装命令具体怎么用?-图3
(图片来源网络,侵删)
java -Xmx1g -Xms512m -jar my-app.jar
  • -Xmx: 设置 JVM 最大堆内存。
  • -Xms: 设置 JVM 初始堆内存。

在后台运行

如果你想让程序在后台持续运行(不阻塞你的终端),可以使用 & 符号(Linux/macOS)或在 Windows 中使用 start 命令。

Linux / macOS:

nohup java -jar yourfile.jar > output.log 2>&1 &
  • nohup: 让程序在用户退出登录后继续运行。
  • > output.log: 将标准输出重定向到 output.log 文件。
  • 2>&1: 将错误输出也重定向到同一个文件。
  • &: 让命令在后台执行。

Windows (Command Prompt):

start /B java -jar yourfile.jar

Windows (PowerShell):

Start-Process java -ArgumentList "-jar", "yourfile.jar" -NoNewWindow

将 JAR 命令添加到系统环境变量 (PATH)

如果你希望可以从任何目录下方便地运行某个 JAR 程序,可以将其所在目录添加到 PATH 环境变量中。

Windows (以添加 C:\my-tools 目录为例)

  1. 打开环境变量设置

    右键点击 "此电脑" -> "属性" -> "高级系统设置" -> "环境变量"。

  2. 编辑 Path 变量
    • 在 "系统变量" 部分,找到并选中 Path 变量,点击 "编辑"。
  3. 添加新路径
    • 点击 "新建",然后输入你的 JAR 文件所在的目录路径,C:\my-tools
    • 重要:确保你的 JAR 文件在该目录下。
  4. 保存并重启
    • 点击所有窗口的 "确定" 保存设置,然后重启命令提示符或 PowerShell,使更改生效。

使用方法: 你可以在任何位置直接通过 JAR 文件名来运行它(假设 JAR 文件有可执行的主类清单)。

# 假设 C:\my-tools 目录下有 my-app.jar
my-app.jar

JAR 文件没有设置主类,你仍然需要使用 java -jar 前缀:

java -jar my-app.jar

Linux / macOS (以添加 /opt/my-tools 目录为例)

  1. 打开并编辑配置文件
    • 编辑 ~/.bashrc (针对当前用户) 或 /etc/environment (针对所有用户,需要管理员权限)。
    • 编辑 ~/.bashrc:
      nano ~/.bashrc
  2. 添加或修改 PATH
    • 在文件末尾添加以下内容:
      export PATH="/opt/my-tools:$PATH"
      • export PATH="...:$PATH" 的格式很重要,它会把新路径添加到现有的 PATH 变量前面,而不是覆盖它。
  3. 使配置生效
    • 运行以下命令,让当前终端会话加载新的配置:
      source ~/.bashrc

使用方法: 与 Windows 类似,现在你可以从任何位置运行它。


将 JAR 安装为系统服务

对于需要长期运行的服务(如 Web 服务器、数据库等),最佳实践是将其安装为系统服务。

在 Linux 上使用 systemd

这是现代 Linux 发行版(如 Ubuntu 16.04+, CentOS 7+)的标准方式。

  1. 创建服务文件

    • 创建一个服务单元文件,my-app.service
      sudo nano /etc/systemd/system/my-app.service
  2. 编写服务内容

    • 粘贴到文件中,并根据你的实际情况进行修改。

      [Unit]
      Description=My Awesome Java Application
      After=network.target
      [Service]
      # 替换为你的实际 JAR 路径
      ExecStart=/usr/bin/java -jar /opt/my-app/my-app.jar
      # 替换为运行该服务的用户
      User=myuser
      # 替换为运行该服务的用户组
      Group=mygroup
      # 自动重启服务
      Restart=on-failure
      [Install]
      WantedBy=multi-user.target
  3. 管理服务

    • 重新加载 systemd 配置:
      sudo systemctl daemon-reload
    • 启动服务:
      sudo systemctl start my-app
    • 设置服务开机自启:
      sudo systemctl enable my-app
    • 查看服务状态:
      sudo systemctl status my-app
    • 查看服务日志:
      journalctl -u my-app -f

在 Windows 上使用 sc 命令

  1. 创建服务
    • 管理员身份打开命令提示符 (CMD) 或 PowerShell。
    • 运行以下命令(请替换路径和名称):
      sc create MyApp binPath= "C:\Program Files\Java\jdk-11.0.12\bin\java.exe -jar C:\my-app\my-app.jar" DisplayName= "My Awesome Java App" start= auto
      • binPath: 必须是完整的 Java 可执行文件路径和 JAR 文件路径。注意路径中的空格要用引号括起来, 后面要有一个空格
      • DisplayName: 服务的友好名称。
      • start= auto: 设置服务为自动启动。
  2. 启动服务
    net start MyApp
  3. 停止服务
    net stop MyApp
  4. 删除服务
    sc delete MyApp

使用包管理器安装 (适用于特定软件)

有些软件官方会提供 .deb (Debian/Ubuntu) 或 .rpm (CentOS/RHEL) 格式的包,这些包内部包含了 JAR 文件和相关的启动脚本,安装起来更方便。

使用 apt (Debian/Ubuntu):

# 下载 .deb 文件
wget https://example.com/path/to/your-software.deb
# 安装
sudo dpkg -i your-software.deb
# 如果有依赖问题,运行
sudo apt-get install -f

使用 yumdnf (CentOS/RHEL/Fedora):

# 下载 .rpm 文件
wget https://example.com/path/to/your-software.rpm
# 安装
sudo yum localinstall your-software.rpm

总结与最佳实践

场景 适用情况 命令/方法 优点 缺点
直接运行 临时使用、快速测试、脚本调用 java -jar yourfile.jar 简单直接,无需配置 每次都要输入完整路径,终端关闭后程序可能终止
添加到 PATH 需要频繁使用的命令行工具 编辑 PATH 环境变量 方便,可在任何目录运行 不适用于需要长期运行的后台服务
安装为服务 Web服务、数据库等需要7x24小时运行的后台应用 systemd (Linux), sc (Windows) 稳定可靠,可自启、重启、管理 配置相对复杂
包管理器 软件官方提供了预编译包 apt, yum 自动处理依赖,易于管理 仅适用于支持包管理的软件

建议:

  • 个人开发/临时任务:使用直接运行
  • 常用命令行工具:使用添加到 PATH
  • 生产环境服务:务必使用安装为服务
  • 在 Linux 上安装标准软件:优先查找并使用包管理器
分享:
扫描分享到社交APP
上一篇
下一篇