设置应用程序的入口点
如果您将应用程序 Binding 在 JAR 文件中,则需要某种方式来指示 JAR 文件中的哪个类是应用程序的入口点。您可以在清单中的Main-Class
Headers 中提供此信息,该 Headers 的格式如下:
Main-Class: classname
值* classname
*是作为应用程序入口点的类的名称。
回想一下,入口点是一个类,该类具有带有签名public static void main(String[] args)
的方法。
在清单中设置Main-Class
Headers 后,然后使用以下格式的java
命令运行 JAR 文件:
java -jar JAR-name
执行在Main-Class
Headers 中指定的类的main
方法。
An Example
当我们运行 JAR 文件时,我们想在包MyPackage
中的类MyClass
中执行main
方法。
我们首先创建一个名为Manifest.txt
的文本文件,其内容如下:
Main-Class: MyPackage.MyClass
Warning:
文本文件必须以换行符或回车符结尾。如果最后一行未以新行或回车结尾,则将无法正确解析。
然后,通过 Importing 以下命令,创建一个名为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 文件时,将执行MyClass
的main
方法:
java -jar MyJar.jar
使用 JAR 工具设置入口点
“ e”标志(用于“ entrypoint”)创建或覆盖清单的Main-Class
属性。它可以在创建或更新 JAR 文件时使用。使用它可以指定应用程序入口点,而无需编辑或创建清单文件。
例如,此命令创建app.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