共计 1543 个字符,预计需要花费 4 分钟才能阅读完成。
导读 | 在本文中,我们将展示如何创建 Java 应用程序并将其捆绑到 JAR 文件中,并演示如何从 Linux 终端执行.jar 文件。 |
它允许 Java 运行时在一个存档文件中有效地部署整个应用程序,并提供许多好处,例如安全性,可以压缩其元素,缩短下载时间,允许封装和版本控制,支持可移植性。它还支持扩展包装。
在本文中,我们将展示如何创建一个简单的 Java 应用程序并将其捆绑到一个 JAR 文件中,并演示如何从 Linux 终端执行.jar 文件。
为此,必须安装 java 命令行工具来启动 Java 应用程序,并使用 -jar 标志执行封装在 JAR 文件中的程序。使用此标志时,指定的 JAR 文件是所有用户类的源,并忽略其他类路径设置。
1.首先,为一个名为 HowtoingApp 的应用程序编写一个带有 main 方法的简单 Java 类,用于演示目的。
$ vim HowtoingApp.java
将以下代码复制并粘贴到 HowtoingApp.java 文件中。
public class HowtoingApp { | |
public static void main(String[] args){ | |
System.out.println("Just executed HowtoingApp!"); | |
} | |
} |
保存文件并关闭它。
2.接下来,我们需要使用 javac 和 jar 实用程序将类编译并打包到 JAR 文件中,如图所示。
$ javac -d . HowtoingApp.java | |
$ ls | |
$ jar cvf howtoingapp.jar HowtoingApp.class | |
$ ls |
3.创建 howtoingapp.jar 后,现在可以使用 java 命令执行该文件,如图所示。
$ java -jar howtoingapp.jar | |
no main manifest attribute, in howtoingapp.jar |
从上面命令的输出,我们遇到了一个错误。JVM(Java 虚拟机)无法找到我们的主 清单属性,因此无法找到包含 main 方法的主类(public static void main(String [] args))。
JAR文件应该有一个清单,其中包含 Main-Class 形式的一行:classname,它定义了带有 main 方法的类,该方法用作应用程序的起点。
4.要解决上述错误,我们需要更新 JAR 文件以包含 清单属性 和代码。让我们创建一个 MANIFEST.MF 文件。
$ vim MANIFEST.MF
将以 下行复制并粘贴到 MANIFEST.MF 文件中。
Main-Class: HowtoingApp
保存文件,然后 使用以下命令将文件 MANIFEST.MF 添加到howtoingapp.jar。
$ jar cvmf MANIFEST.MF howtoingapp.jar HowtoingApp.class
5.最后,当我们再次执行 JAR 文件时,它应该产生预期的结果,如输出中所示。
$ java -jar howtoingapp.jar | |
Just executed HowtoingApp! |
有关更多信息,请参阅 java,javac 和jar 命令手册页。
$ man java | |
$ man javac | |
$ man jar |
参考:JAR 文件中的打包程序。
就这样!在这篇简短的文章中,我们已经解释了如何创建一个简单的 Java 应用程序并将其捆绑到一个 JAR 文件中,并演示了如何从终端执行 .jar 文件。如果您有任何问题或补充意见要分享,请使用下面的反馈表。
