网站搜索

如何在 Linux 终端中创建并执行 .Jar 文件


JAR (Java ARchive) 是一种独立于平台的文件格式,用于将许多 Java 类文件以及相关元数据和资源(例如文本、图像等)聚合到单个文件中用于分发。

它允许 Java 运行时在一个存档文件中有效地部署整个应用程序,并提供许多好处,例如安全性、其元素可以压缩、缩短下载时间、允许包密封和版本控制、支持可移植性。它还支持扩展打包。

在本文中,我们将展示如何创建一个简单的 Java 应用程序并将其捆绑到 JAR 文件中,并演示如何从 Linux 终端执行 .jar 文件。

为此,您必须安装 java 命令行工具来启动 Java 应用程序,并安装 -jar 标志来执行封装在 JAR 文件中的程序。使用此标志时,指定的 JAR 文件是所有用户类的源,并且其他类路径设置将被忽略。

如何在 Linux 中创建 JAR 文件

1. 首先,为了演示目的,首先为名为 TecmintApp 的应用程序编写一个简单的 Java 类,其中包含一个 main 方法。

vim TecmintApp.java

将以下代码复制并粘贴到 TecmintApp.java 文件中。

public class TecmintApp {
	public static void main(String[] args){
		System.out.println(" Just executed TecmintApp! ");
	}
}

保存文件并关闭它。

2. 接下来,我们需要使用 javacjar 实用程序将该类编译并打包到 JAR 文件中如图所示。

javac -d . TecmintApp.java
ls
jar cvf tecmintapp.jar TecmintApp.class
ls

3. 创建howtoingapp.jar后,现在您可以使用java命令执行该文件,如图所示。

java -jar tecmintapp.jar

no main manifest attribute, in tecmintapp.jar

从上面命令的输出来看,我们遇到了一个错误。 JVMJava 虚拟机)无法找到我们的主要 manifest 属性,因此它无法找到包含 main 方法的主类(公共静态无效主(字符串[]参数))。

JAR 文件应该有一个清单,其中包含一行 Main-Class:classname 形式的行,该行定义了具有作为应用程序起点的 main 方法的类。

4. 要修复上述错误,我们需要更新 JAR 文件,以在代码中包含 manifest 属性。让我们创建一个 MANIFEST.MF 文件。

vim MANIFEST.MF

将以下行复制并粘贴到 MANIFEST.MF 文件中。

Main-Class:  TecmintApp

保存文件,然后使用以下命令将文件 MANIFEST.MF 添加到我们的 howtoingapp.jar 中。

jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class

5. 最后,当我们再次执行 JAR 文件时,它应该会产生输出中所示的预期结果。

java -jar tecmintapp.jar

Just executed TecmintApp!

有关详细信息,请参阅 javajavacjar 命令手册页。

man java
man javac
man jar

就这样!在这篇简短的文章中,我们解释了如何创建一个简单的 Java 应用程序并将其捆绑到 JAR 文件中,并演示了如何从终端执行 .jar 文件。如果您有任何问题或补充想法要分享,请使用下面的反馈表。