简介
Java 开发者常常需要将他们的应用程序打包成可执行的 JAR 文件,以便于分发和部署。本教程将指导你完成创建和运行可执行 JAR 文件的过程,帮助你掌握一项基本的 Java 编程技术。
Java 开发者常常需要将他们的应用程序打包成可执行的 JAR 文件,以便于分发和部署。本教程将指导你完成创建和运行可执行 JAR 文件的过程,帮助你掌握一项基本的 Java 编程技术。
可执行 JAR(Java 归档)文件是一种特殊类型的 Java 归档文件,无需显式调用 Java 虚拟机(JVM)即可直接从命令行运行。这是通过在 JAR 文件的清单文件中包含一个特殊条目来实现的,该条目指定要执行的主类。
可执行 JAR 文件有以下几个优点:
可执行 JAR 文件由以下关键组件组成:
名为 MANIFEST.MF
的清单文件位于 JAR 文件的 META-INF
目录中。它包含一组键值对,描述 JAR 文件的内容和属性。可执行 JAR 文件最重要的条目是 Main-Class
属性,它指定要执行的主类的全限定名。
Manifest-Version: 1.0
Main-Class: com.labex.app.Main
META-INF
目录中创建一个名为 MANIFEST.MF
的新文件。Manifest-Version: 1.0
Main-Class: com.labex.app.Main
将 com.labex.app.Main
替换为你应用程序主类的全限定名。
jar cvfm app.jar MANIFEST.MF -C bin/.
此命令将在当前目录中创建一个名为 app.jar
的 JAR 文件,其中包含已编译的类文件和清单文件。
命令解析:
jar
:Java 归档工具c
:创建新归档v
:详细输出f
:指定输出文件名(app.jar)m
:包含清单文件-C bin/.
:切换到 bin/
目录并包含当前目录中的所有文件你可以使用以下命令验证 JAR 文件的内容:
jar tf app.jar
这将列出 JAR 文件中包含的所有文件和目录。
要运行可执行 JAR 文件,请执行以下步骤:
java -jar app.jar
将 app.jar
替换为你的可执行 JAR 文件的名称。
如果你的应用程序接受命令行参数,你可以在 java -jar
命令之后传递它们:
java -jar app.jar arg1 arg2 arg3
这些参数将被传递到你应用程序的主方法中。
如果你在运行可执行 JAR 文件时遇到任何问题,可以尝试以下操作:
Main-Class
条目是否正确,并且与你应用程序主类的全限定名匹配。jar tf app.jar
命令检查 JAR 文件的内容,以确保包含所有必要的文件。通过遵循这些步骤,你应该能够在你的 Ubuntu 22.04 系统上成功运行你的可执行 JAR 文件。
在本 Java 教程中,你已经学会了如何创建和运行可执行 JAR 文件。通过理解将 Java 应用程序打包成自包含 JAR 文件的过程,你可以简化 Java 程序的部署和分发。对于想要将其应用程序无缝交付给最终用户或其他开发者的 Java 开发者来说,这项技能至关重要。