如何在 Linux 终端中创建和执行 .jar 文件?
在 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 应用程序。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

