https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html
Setting an Application's Entry Point
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 the
The value
Recall that the entry point is a class having a method with signature
After you have set the
The
We first create a text 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.
We then create a JAR file named
This creates the JAR file with a manifest with the following contents:
When you run the JAR file with the following command, the
For example, this command creates
You can directly invoke this application by running the following command:
If the entrypoint class name is in a package it may use a '.' (dot) character as the delimiter. For example, if
Main-Class
header in the manifest, which has the general form:Main-Class: classname
classname
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 the java
command:java -jar JAR-name
main
method of the class specified in the Main-Class
header is executed.An Example
We want to execute themain
method in the class MyClass
in the package MyPackage
when we run the JAR file.We first create a text file named
Manifest.txt
with the following contents:Main-Class: MyPackage.MyClass
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:jar cfm MyJar.jar Manifest.txt MyPackage/*.class
Manifest-Version: 1.0 Created-By: 1.7.0_06 (Oracle Corporation) Main-Class: MyPackage.MyClass
main
method of MyClass
executes:java -jar MyJar.jar
Setting an Entry Point with the JAR Tool
The 'e' flag (for 'entrypoint') creates or overrides the manifest'sMain-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
java -jar app.jar
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
No comments:
Post a Comment