Java to create JAR file included with jar libraries

Java to create JAR file included with jar libraries

A JAR file is still a .zip file, but includes a special manifest file to identify its contents.

Suppose you have the directory structure with several .class files and images directory and some libraries used in your project. You could use the jar utility to put all these into a new JAR file which you can name it of your projectname.jar

The general format for the jar command is

jar options filenames

The first file named in the filenames list is the name of the archive.

You can study options through command.

jar -h

Basically its an help command..

Creating an jar archive:

In order to make new archive, then use

jar cf YourJar.jar *.class images/*.png lib/*.jar

If you had prepared a manifest file called MANIFEST.MF then

jar cfm YourJar.jar MANIFEST.MF *.class images/*.png lib/*.jar

Adding libraries into your classpath

Let us consider your project contains mysql-connector.jar , mail.jar and activation.jar libraries, and images and some other packages with class file for example

C:/YourProject

|

|—MANIFEST.MF

|—package

| |—mainclass.java

| |—aclass.java

|—anotherpackage

| |—bclass.java

| |—cclass.java

|—images

| |—icon.png

| |—pic.png

|—lib

| |—mysql-connector.jar

| |—mail.jar

| |—activation.jar

Now you want to put all these files and folders into an jar archieve,

First, you need to create a MANIFEST.MF file, with text editor add these lines

Manifest-Version: 1.0

Created-By: Harish Manohar

Class-Path: lib/mysql-connector.jar lib/mail.jar activation.jar

Main-Class: package.mainclass

Now Compile your java files using javac command

and if you to add all your source files and class files, you can use

jar cfm Myproject.jar MANIFEST.MF -C c:/YourProject/ .

Note: it will store all your files under YourProject folder including java files.

If you want to add only class files.,then navigate to your project folder using cd command, then type

jar cfm Myproject.jar MANIFEST.MF package/*.class anotherpackage/*.class images/*.png lib/*.jar

Now execute the jar using command

java -jar Myproject.jar

All done., Hope it will be useful to you in any way.