从命令行运行 JAR 文件

Beginner

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 Ubuntu 系统上创建和运行 Java 的 JAR 文件。JAR 是 Java Archive 的缩写。JAR 文件包含压缩的 Java 项目文件,包括 .class 文件以及项目所需的其他元数据和资源。我们将介绍如何创建 JAR 文件并从命令行执行它。


Skills Graph

创建一个测试 Java 文件

在这一步中,你将在 ~/project 目录下创建一个名为 HelloWorld.java 的 Java 文件。HelloWorld.java 的内容如下:

public class HelloWorld
{
    public static void main(String args[])
    {
        System.out.print("\n\nHello World\n\n");
    }
}

我们将使用这个文件来创建 JAR 文件,以便在实验的后续部分运行。

编译 Java 文件

在这一步中,你将使用以下 javac 命令编译 HelloWorld.java 文件:

javac ~/project/HelloWorld.java

创建可执行的 JAR 文件

在这一步中,你将创建一个可执行的 JAR 文件。可执行的 JAR 文件包含一个清单文件(manifest file),而非可执行的 JAR 文件则不包含此文件。这个清单文件包含了在运行 JAR 时应执行的类的名称。在 Ubuntu 系统上,你可以通过以下方式创建包含清单文件的可执行 JAR 文件:

  1. ~/project 目录下创建一个名为 ManifestFile.txt 的文件,并在文件中添加以下内容:
    Main-Class: HelloWorld
  2. 使用以下命令创建可执行的 JAR 文件:
    jar -cfm ~/project/HelloWorld.jar ~/project/ManifestFile.txt ~/project/HelloWorld.class
    其中,-c 标志用于创建归档文件,-f 标志用于指定文件名,-m 标志用于包含清单文件的内容。

创建非可执行的 JAR 文件

在这一步中,你将学习如何创建一个非可执行的 JAR 文件。我们将省略 -m 标志,因此不需要在命令中传递清单文件的名称。你可以使用以下命令创建非可执行的 JAR 文件:

jar -cf ~/project/HelloWorldNonExec.jar ~/project/HelloWorld.class

运行可执行的 JAR 文件

在这一步中,你将学习如何运行在第 3 步中创建的可执行 JAR 文件。你可以使用以下命令运行它:

java -jar ~/project/HelloWorld.jar

命令的输出将会是:

Hello World

运行非可执行的 JAR 文件

在这一步中,你将学习如何运行在第 4 步中创建的非可执行 JAR 文件。你可以使用以下命令运行它:

java -cp ~/project/HelloWorldNonExec.jar HelloWorld

命令的输出将会是:

Hello World

使用命令行参数运行 JAR 文件

在这一步中,你将学习如何在运行 JAR 文件时传递命令行参数。

  1. ~/project 目录下创建一个名为 CommandLineArgs.java 的新 Java 类,代码如下:

    public class CommandLineArgs {
        public static void main(String args[]) {
            for (String s : args) {
                System.out.println(s);
            }
        }
    }
  2. 编译 CommandLineArgs.java

    javac ~/project/CommandLineArgs.java
  3. 创建一个可执行的 JAR 文件:

    jar -cfm ~/project/CommandLineArgs.jar ~/project/ManifestFile.txt ~/project/CommandLineArgs.class
  4. 运行以下命令以传递三个命令行参数:

    java -jar ~/project/CommandLineArgs.jar "Welcome " "Back " User

命令的输出将会是:

Welcome
Back
User

总结

恭喜!你已经完成了「从命令行运行 JAR 文件」的实验。你可以在 LabEx 中练习更多实验来提升你的技能。