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
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
Something's gotta tell the java which class should be started automatically. That's the Manifest - see description here You have to package the Manifest.mf in your jar.
- Open Command Prompt
- cd go to the path where jar file exist
- run command
jar xf fileName.jar
- It will generate com,
META-INF
&Copyright.mk
files - Go to the particular package where u want to modify the class file (Basically class files present in com directory)
- Download the
JAD.exe
from google (Its Zip File) - Extract the Zip file you will get
jad.exe
- Place the class file (which u want to modify) in the folder, that contains
jad.exe
- Go to command prompt, run
jad fileName.clas
s (the class filename which u want to modify) fileName.jad
file will get generate , rename it asfileName.java
- compile the
fileName.java
(if its referring to some other class file configure it in eclipse accordingly) - once compiled replace the class file in the directory defined in step 4
- Go to command prompt, cd Step 4 path, run
jar cf fileName.jar
(* represents all the class files irrespective of directories)
- open cmd (windows+r type cmd)
- simipily type command as a "jar" without quatoes
- it will give some options and those usage.
- use what you want
- to create a jar file with class you to mention jar cfv filename.jar example.class example2.class etc..
- IF your using swing compile it with javac -deprecation SwingApplication.java but JDK version must be greater than version JDK1.1
- run java SwingApplication
- ALL THE BEst
来源:https://stackoverflow.com/questions/14821715/java-use-command-prompt-to-create-jar-file-from-multiple-class-files