javajar

Java creating .jar file


I'm learning Java and I have a problem. I created 6 different classes, each has it's own main() method. I want to create executable .jar for each class, that is 6 executable .jar files.

So far I tried

java -jar cf myJar.jar myClass.class

and I get 'Unable to access jarfile cf'. I'm doing something wrong but I don't know what. I'm also using Eclipse IDE if that means something.


Solution

  • In order to create a .jar file, you need to use jar instead of java:

    jar cf myJar.jar myClass.class
    

    Additionally, if you want to make it executable, you need to indicate an entry point (i.e., a class with public static void main(String[] args)) for your application. This is usually accomplished by creating a manifest file that contains the Main-Class header (e.g., Main-Class: myClass).

    However, as Mark Peters pointed out, with JDK 6, you can use the e option to define the entry point:

    jar cfe myJar.jar myClass myClass.class 
    

    Finally, you can execute it:

    java -jar myJar.jar
    

    See also