执行 jar 文件:简单指南

by Corinna

执行 Jar 文件是一个简单的过程,只需一个可运行的 Java 运行环境 (JRE) 即可。

什么是 JAR 文件以及如何执行

JAR 文件(Java ARchive)是一种基于 ZIP 的存档格式,专为 Java 开发。它将 Java 类、图像或配置文件等资源、元数据以及通常的清单文件(META-INF/MANIFEST.MF)捆绑在一起。

  • 与传统的 ZIP 存档不同,Jar 文件的设计目的是将 Java 应用程序或库整合到一个文件中。这大大简化了此类应用程序的分发和使用。
  • 为了能够直接启动 Jar 文件,它必须在清单中包含一个所谓的“主类”。该条目指向应用程序的主类。如果存在该条目,则可以通过输入命令 java -jar 文件名.jar 通过命令行启动该文件。
  • 并非每个 Jar 文件都是独立的应用程序——许多文件作为库,用于其他项目。
  • 此外,Jar 文件是压缩文件,因此通常比其单个文件的总和更小。它们可以进行数字签名,以确保内容的完整性和真实性。较新的 Java 版本还支持所谓的模块化或多版本 JAR,其中包含适用于不同 Java 版本的类。

在 Windows、macOS 和 Linux 上安装 Java 运行环境 (JRE / JDK)

为了在您的系统上运行 Jar 文件,您需要一个 Java 运行环境。在本章中,您将了解如何安装 Java 以及需要注意的版本问题。

  • 要启动 Jar 文件,您至少需要一个 Java 运行时环境 (JRE)。如今,该环境通常包含在 Java 开发工具包 (JDK) 中。根据应用程序的不同,可能需要特定的版本——通常是 Java 8、11、17 或更新版本。
  • 特别推荐长期支持版本 (LTS),如 Java 11 或 Java 17,因为它们会持续维护多年。请确保 Java 版本与您的应用程序兼容,因为旧版本的程序可能与新版本不兼容。
  • 在 Windows 上安装: 从 Oracle 官方网站或 OpenJDK 发行版(例如 Azul Zulu 或 Eclipse Temurin)下载最新的 Java 版本。选择适合您系统的安装文件(通常是 64 位),然后运行安装程序。
  • 安装完成后,可能需要将 Java 安装的“bin”文件夹添加到 PATH 环境变量中。然后,打开命令提示符,使用命令 java –version 检查 Java 是否已正确安装。
  • 在 macOS 上安装: 从 Oracle 或 OpenJDK 网站下载安装文件(DMG 或 PKG),然后按照安装向导进行操作。您也可以在 Shell(例如 zsh)中使用以下命令设置 Java 环境变量:export JAVA_HOME=$(/usr/libexec/java_home) 和 export PATH=$JAVA_HOME/bin:$PATH 
  • 在 macOS 上,您也可以通过 Homebrew 轻松安装 Java,方法是在终端中输入: brew install java
  • 在 Linux(例如 Ubuntu或 Debian)上安装: 许多 Linux 发行版已经在他们的软件包源中提供了 Java。使用 java –version 检查 Java 是否已安装。如果未安装,您可以使用 sudo apt install openjdk-17-jre  安装最新的运行环境。或者,也可以从 OpenJDK 网站手动下载 JDK 并进行设置。

    执行 JAR 文件时的安全性和故障排除

    Jar 文件虽然实用,但也会带来某些风险。下面将介绍如何安全地执行 Jar 文件,以及遇到错误消息或问题时该怎么做。

    • 安全提示: 请只运行来自可信来源的 Jar 文件。来自未知或不安全来源的文件可能包含会危及您系统的恶意代码。信誉良好的开发人员通常会提供校验和或数字签名,用于验证 Jar 文件的真实性。
    • 如果您想更仔细地检查 Jar 文件,可以使用常见的 ZIP 程序打开或解压缩该文件。一些特殊工具(如“OWASP Dependency-Check”)也有助于识别所包含库中的已知安全漏洞。为了获得最高的安全性,建议先在虚拟机或隔离环境中测试未知的 Jar 文件。
    • 故障排除(Troubleshooting): 如果 Jar 文件无法启动,通常是有明确原因的。最常见的原因包括:
    • 缺少主类条目: 在这种情况下,通常会显示“no main manifest attribute”消息。此时,必须手动调整清单或重新创建 JAR。
    • 缺少依赖项: 如果启动时出现“ClassNotFoundException”或“NoClassDefFoundError”错误,通常是缺少附加库。必须将这些库添加到类路径中或正确集成。
    • Java 版本不兼容:使用 Java 17 编译的应用程序可能无法在 Java 8 上运行。请检查应用程序所需的版本,并相应地调整运行环境。
    • 清单错误: 使用命令 jar xf 文件名.jar META-INF/MANIFEST.MF

      然后使用 cat META-INF/MANIFEST.MF 可以查看清单内容。其中应包含“Main-Class”和“Class-Path”等条目。

    • 仔细阅读错误信息——它们通常包含有关缺失文件或错误路径的宝贵信息。

    实用示例和有用的工具

    最后,这里提供一些实用的示例和工具,可帮助您轻松处理 Jar 文件。

    • 应用程序启动示例: 如果您的文件名为“meineApp.jar”,并包含可执行主类,则使用以下命令启动它: java -jar meineApp.jar
    • 如果需要位于子文件夹“lib”中的附加库,则可以使用类路径启动应用程序,例如: java -cp “meineApp.jar:lib/*” com.beispiel.Hauptklasse
    • 打开或解压缩 Jar 文件: 由于 Jar 文件与 ZIP 兼容,因此可以使用 7-Zip、WinRAR 等常用程序或通过命令行进行解压缩。在 Linux 或 macOS 上,例如使用 unzip 文件名.jar -d 目标文件夹 即可解压,或者使用 jar tf 文件名.jar 仅显示内容。
    • 分析和安全工具: 您可以使用“OWASP Dependency-Check”等工具进行安全检查。该工具可分析 Jar 文件中的依赖关系,并识别已知的漏洞。
    • 典型应用案例: Jar 文件广泛应用于许多领域——从桌面程序、库到服务器或云应用程序。当您需要紧凑地分发 Java 应用程序或将多个模块捆绑到一个文件中时,它们特别实用。
     

    Related Articles

    Leave a Comment