介绍
在本实验中,你将学习如何在 Ubuntu 系统上创建和运行 Java 的 JAR 文件。JAR 是 Java Archive 的缩写。JAR 文件包含压缩的 Java 项目文件,包括 .class 文件以及项目所需的其他元数据和资源。我们将介绍如何创建 JAR 文件并从命令行执行它。
在本实验中,你将学习如何在 Ubuntu 系统上创建和运行 Java 的 JAR 文件。JAR 是 Java Archive 的缩写。JAR 文件包含压缩的 Java 项目文件,包括 .class 文件以及项目所需的其他元数据和资源。我们将介绍如何创建 JAR 文件并从命令行执行它。
在这一步中,你将在 ~/project
目录下创建一个名为 HelloWorld.java
的 Java 文件。HelloWorld.java
的内容如下:
public class HelloWorld
{
public static void main(String args[])
{
System.out.print("\n\nHello World\n\n");
}
}
我们将使用这个文件来创建 JAR 文件,以便在实验的后续部分运行。
在这一步中,你将使用以下 javac
命令编译 HelloWorld.java
文件:
javac ~/project/HelloWorld.java
在这一步中,你将创建一个可执行的 JAR 文件。可执行的 JAR 文件包含一个清单文件(manifest file),而非可执行的 JAR 文件则不包含此文件。这个清单文件包含了在运行 JAR 时应执行的类的名称。在 Ubuntu 系统上,你可以通过以下方式创建包含清单文件的可执行 JAR 文件:
~/project
目录下创建一个名为 ManifestFile.txt
的文件,并在文件中添加以下内容:Main-Class: HelloWorld
jar -cfm ~/project/HelloWorld.jar ~/project/ManifestFile.txt ~/project/HelloWorld.class
其中,-c
标志用于创建归档文件,-f
标志用于指定文件名,-m
标志用于包含清单文件的内容。在这一步中,你将学习如何创建一个非可执行的 JAR 文件。我们将省略 -m
标志,因此不需要在命令中传递清单文件的名称。你可以使用以下命令创建非可执行的 JAR 文件:
jar -cf ~/project/HelloWorldNonExec.jar ~/project/HelloWorld.class
在这一步中,你将学习如何运行在第 3 步中创建的可执行 JAR 文件。你可以使用以下命令运行它:
java -jar ~/project/HelloWorld.jar
命令的输出将会是:
Hello World
在这一步中,你将学习如何运行在第 4 步中创建的非可执行 JAR 文件。你可以使用以下命令运行它:
java -cp ~/project/HelloWorldNonExec.jar HelloWorld
命令的输出将会是:
Hello World
在这一步中,你将学习如何在运行 JAR 文件时传递命令行参数。
在 ~/project
目录下创建一个名为 CommandLineArgs.java
的新 Java 类,代码如下:
public class CommandLineArgs {
public static void main(String args[]) {
for (String s : args) {
System.out.println(s);
}
}
}
编译 CommandLineArgs.java
:
javac ~/project/CommandLineArgs.java
创建一个可执行的 JAR 文件:
jar -cfm ~/project/CommandLineArgs.jar ~/project/ManifestFile.txt ~/project/CommandLineArgs.class
运行以下命令以传递三个命令行参数:
java -jar ~/project/CommandLineArgs.jar "Welcome " "Back " User
命令的输出将会是:
Welcome
Back
User
恭喜!你已经完成了「从命令行运行 JAR 文件」的实验。你可以在 LabEx 中练习更多实验来提升你的技能。