Search code examples
javacommand-linejarjavac

(JAVA) Use Command Prompt to create .jar file from multiple .class files


I have written a .java file, called Main.java, and have compiled it using the javac in the Windows Command Prompt. The compiler is creating multiple .class files (called Main.class, Main$1.class, & Main$2.class--presumably because I have anonymous inner classes in my Main.java file). I am trying to create a runnable .jar file so I can double click a shortcut to run this application (it is a Java Swing application), but I am unsuccessful when I navigate to the directory of the three class files and type:

jar cfv file.jar Main.class Main$1.class Main$2.class

The Command Prompt then outputs this text:

added manifest
adding: Main.class(in 4871) (out = 2848)(deflated 41%)
adding: Main$1.class(in 1409) (out = 833)(deflated 40%)
adding: Main$2.class(in 1239) (out = 767)(deflated 38%)

Despite this, when I double click on the file.jar file in Windows Explorer, simply put, nothing happens. No swing application opens.

Hopefully someone can help me out with this. Thank you

Best...SL


Solution

  • You need to use the entry-point switch -e (with the name of the class containing the main() method) as such:

    jar cfve file.jar Main Main.class Main$1.class Main$2.class