如何在 Linux 终端中创建和执行 .jar 文件?

linuxopen sourceoperating system

在 Linux 中创建和执行 .jar 文件是一个简单的过程,它将 Java 源代码的编译以及类文件和资源的打包合并到一个文件中。使用终端,您可以轻松编译代码、创建 .jar 文件、使其可执行,并轻松运行 Java 应用程序。

JAR 格式(也称为 Java ARchive)提供了一种灵活高效的方法,可以将 Java 类文件、资源和元数据打包到一个与平台无关的文件中。这种格式旨在简化 Java 运行时的分发和部署过程,同时还提供一些关键优势,例如增强的安全性、压缩以加快下载速度、支持包封装和版本控制以及可移植性。此外,JAR 文件还可用于打包 Java 扩展。

在本文中,我们将指导您完成创建简单 Java 应用程序的过程,然后演示如何将其组装成 JAR 文件,以便分发。最后,我们将向您展示如何使用 java 命令行工具和 -jar 标志从 Linux 终端运行 JAR 文件。需要特别注意的是,您需要安装 java 命令行工具以及 -jar 标志才能执行 JAR 文件中封装的程序。使用此标志后,指定的 JAR 文件将成为所有用户类的源,并且任何其他类路径设置都将被忽略。

  • 首先,我们将创建一个包含 main 方法的基本 Java 类。此 Java 类将作为示例,演示在 Linux 终端中创建和执行 .jar 文件的步骤。为了便于说明,我们将 Java 应用程序命名为"MyApp"。

$ vim MyApp.java
  • 将以下代码合并到 MyApp.java 文件中。

public class MyApp{
	public static void main(String[] args){
		System.out.println("My Java Applicatoion");
	}
}
  • 编译 Java 源代码后,下一步是借助 javac 和 jar 实用程序将其打包成 JAR 文件,如前面的步骤所述。

$ javac -d . MyApp.java
$ ls
$ jar cvf myapp.jar MyApp.class
$ ls

或者

javac MyApp.java
jar cf myapp.jar MyApp.class
chmod +x myapp.jar
java -jar myapp.jar
  • 现在 myapp.jar 文件已经生成,可以使用简单的"java"命令运行,如下图所示。

$ java -jar myapp.jar

no main manifest attribute, in myapp.jar

上一步遇到的错误凸显了在 .jar 文件中拥有正确 manifest 的重要性。 JVM 需要指定一个主类,作为应用程序的入口点。如果没有此信息,JVM 就无法在 .jar 文件中找到运行应用程序所需的 main 方法。要解决此错误,必须在清单文件中添加 Main-Class 属性,以指定应用程序的主类。此行应采用"Main-Class: classname"的格式,其中 classname 是主类的完全限定名称。通过在清单中包含此信息,JVM 将准确知道在哪里找到 main 方法,从而使应用程序能够顺利运行。

  • 解决此错误的方法是更新 JAR 存档,使其与代码一起包含 manifest 属性。这可以通过创建 manifest.mf 文件来实现,该文件将作为 JAR 文件的蓝图。

$ vim manifest.mf

"为了将必要的 manifest 属性添加到 JAR 文件,只需将指定的行复制并粘贴到 manifest.mf 文件中即可。"

Main-Class: MyApp

有了 manifest.mf 文件,现在就可以将其集成到 myapp.jar 中了。可以通过执行以下命令来完成此操作,该命令会将 manifest.mf 文件包含到归档文件中。

$ jar cvmf manifest.mf myapp.jar MyApp.class
  • 执行更新后的 JAR 文件后,应会生成所需的结果并显示在输出中,这标志着问题已成功解决。

$ java -jar myapp.jar

My Java App

如需更深入的了解,请参阅 java、javac 和 jar 命令的手册页。

$ man java
$ man javac
$ man jar

结论

总而言之,JAR 文件格式提供了一种实用的解决方案,可以将多个 Java 类文件、资源和元数据捆绑到一个与平台无关的文件中,以便于分发。借助 java 命令行工具和 -jar 参数,您可以轻松部署完整的 Java 应用程序,并享受其诸多优势,包括安全性、压缩性和可移植性。通过遵循本指南中概述的步骤,您现在已经深入了解如何在 Linux 终端中创建和运行 JAR 文件。这些知识将使您能够轻松自信地分发和部署 Java 应用程序。


相关文章


有用资源