本文共 2267 字,大约阅读时间需要 7 分钟。
If you have an application bundled in a JAR file, you need some way to indicate which class within the JAR file is your application's entry point. You provide this information with theMain-Class
header in the manifest, which has the general form:The valueMain-Class: classnameclassname
is the name of the class that is your application's entry point.Recall that the entry point is a class having a method with signature
public static void main(String[] args)
.After you have set the
Main-Class
header in the manifest, you then run the JAR file using the following form of thejava
command:Thejava -jar JAR-namemain
method of the class specified in theMain-Class
header is executed.
We want to execute themain
method in the classMyClass
in the packageMyPackage
when we run the JAR file.We first create a text file named
Manifest.txt
with the following contents:Main-Class: MyPackage.MyClassWe then create a JAR file named
Warning: The text file must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.
MyJar.jar
by entering the following command:This creates the JAR file with a manifest with the following contents:jar cfm MyJar.jar Manifest.txt MyPackage/*.classWhen you run the JAR file with the following command, theManifest-Version: 1.0 Created-By: 1.6.0 (Sun Microsystems Inc.) Main-Class: MyPackage.MyClassmain
method ofMyClass
executes:java -jar MyJar.jar
Main-Class
attribute. It can be used while creating or updating a jar file. Use it to specify the application entry point without editing or creating the manifest file. For example, this command creates app.jar
where the Main-Class
attribute value in the manifest is set to MyApp
: jar cfe app.jar MyApp MyApp.class
You can directly invoke this application by running the following command:
java -jar app.jar
If the entrypoint class name is in a package it may use a '.' (dot) character as the delimiter. For example, if Main.class
is in a package called foo
the entry point can be specified in the following ways:
jar cfe Main.jar foo.Main foo/Main.class
转载地址:http://ywipi.baihongyu.com/