In the manifest file of a JAR, it is possible to specify the class to be used when the JVM is lauched with the JAR as parameter. The class must have a main().

Try with this simple class:

 import java.awt.*;
import java.awt.event.*;

public class MyClass {
 public static void main(String[] args) {
    Frame f = new Frame();
    f.addWindowListener
          (new WindowAdapter() {
              public void windowClosing(WindowEvent e) {
                 System.exit(0);
                 }
              }
    );
    f.add(new Label("Hello world"));
    f.setSize(200,200);
    f.setVisible(true);
   }
}

Then create this manifest file (manifest.mft) with any text editor.

 Manifest-Version: 1.0
   Main-Class: MyClass
   Classpath: .\MyJar.jar

Next, you include the manifest file in the JAR (MyJar.jar) with the MyClass class.

  jar cvfm MyJar.jar manifest.mft MyClass.class

Then you are able to start the MyClass.class by double-clicking on the MyJar.jar file (if the JRE is correctly installed) or by typing

 java -jar MyJar.jar

On NT, you can also make JARs run from the command-line by setting the PATHEXT environment variable, for example

set PATHEXT=.EXE;.BAT;.CMD;.JAR

Then if you have the jar file MyJar.jar accessible via the PATH environment variable, typing "MyJar" on the DOS command line will invoke "java -jar MyJar.jar" .