I have a program which consists of two simple Java Swing files.
How do I make an executable JAR file for my program?
A jar file is simply a file containing a collection of java files. To make a jar file executable, you need to specify where the main
Class is in the jar file. Example code would be as follows.
public class JarExample {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// your logic here
}
});
}
}
Compile your classes. To make a jar, you also need to create a Manifest File (MANIFEST.MF
). For example,
Manifest-Version: 1.0
Main-Class: JarExample
Place the compiled output class files (JarExample.class,JarExample$1.class) and the manifest file in the same folder. In the command prompt, go to the folder where your files placed, and create the jar using jar command. For example (if you name your manifest file as jexample.mf)
jar cfm jarexample.jar jexample.mf *.class
It will create executable jarexample.jar.
In Eclipse you can do it simply as follows :
Right click on your Java Project and select Export.
Select Java -> Runnable JAR file -> Next.
Select the Launch Configuration and choose project file as your Main class
Select the Destination folder where you would like to save it and click Finish.
jar cvfe myjar.jar package.MainClass *.class
where MainClass
is the class with your main
method, and package
is MainClass
's package.
Note you have to compile your .java
files to .class
files before doing this.
c create new archive
v generate verbose output on standard output
f specify archive file name
e specify application entry point for stand-alone application bundled into an executable jar file
This answer inspired by Powerslave's comment on another answer.
It's too late to answer for this question. But if someone is searching for this answer now I've made it to run with no errors.
First of all make sure to download and add maven to path. [ mvn --version
] will give you version specifications of it if you have added to the path correctly.
Now , add following code to the maven project [ pom.xml
] , in the following code replace with your own main file entry point for eg [ com.example.test.Test ].
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>
your_package_to_class_that_contains_main_file .MainFileName</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Now go to the command line [CMD
] in your project and type mvn package
and it will generate a jar file as something like ProjectName-0.0.1-SNAPSHOT.jar
under target
directory.
Now navigate to the target directory by cd target
.
Finally type java -jar jar-file-name.jar
and yes this should work successfully if you don't have any errors in your program.
If you use maven, add the following to your pom.xml file:
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.path.to.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Then you can run mvn package
. The jar file will be located under in the target directory.