文档

Java™ 教程
隐藏目录
设置应用程序的入口点
路径: 部署
课程: 使用JAR文件打包程序
章节: 使用清单文件:基础知识

设置应用程序的入口点

如果您有一个打包在JAR文件中的应用程序,您需要一种方法来指示JAR文件中的哪个类是您的应用程序的入口点。您可以在清单文件中使用Main-Class头部来提供这些信息,其一般形式如下:

Main-Class: 类名

其中类名是您的应用程序的入口点类的名称。

请记住,入口点是一个具有public static void main(String[] args)签名的方法的类。

在您在清单文件中设置了Main-Class头部之后,您可以使用以下形式的java命令来运行JAR文件:

java -jar JAR文件名

将会执行清单文件中指定的Main-Class头部类的main方法。

一个示例

当我们运行JAR文件时,我们想要执行包MyPackage中的类MyClass中的main方法。

我们首先创建一个名为Manifest.txt的文本文件,其中包含以下内容:

Main-Class: MyPackage.MyClass

警告: 文本文件必须以换行符或回车符结尾。如果最后一行没有以换行符或回车符结尾,它将无法正确解析。

然后,我们通过输入以下命令创建一个名为MyJar.jar的JAR文件:

jar cfm MyJar.jar Manifest.txt MyPackage/*.class

这将创建一个带有以下内容的清单文件的JAR文件:

Manifest-Version: 1.0
Created-By: 1.7.0_06 (Oracle Corporation)
Main-Class: MyPackage.MyClass

当您使用以下命令运行JAR文件时,将会执行MyClassmain方法:

java -jar MyJar.jar

使用JAR工具设置入口点

'e'标志(表示'entrypoint')创建或覆盖清单文件的Main-Class属性。它可以在创建或更新JAR文件时使用。使用它来指定应用程序的入口点,而无需编辑或创建清单文件。
例如,以下命令创建了一个名为app.jar的JAR文件,其中清单文件的Main-Class属性值设置为MyApp

jar cfe app.jar MyApp MyApp.class

您可以通过运行以下命令直接调用此应用程序:

java -jar app.jar

如果入口点类名位于一个包中,可以使用'.'(点)字符作为分隔符。例如,如果Main.class位于名为foo的包中,则可以通过以下方式指定入口点:

jar cfe Main.jar foo.Main foo/Main.class

上一页: 修改清单文件
下一页: 将类添加到JAR文件的类路径中