Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a JAR file which contains other library files

I want to create one executable JAR file which contains other JAR libraries. But when I execute the JAR, it gives an error of class path problem.

How do I solve the class-path problem?

like image 230
Bhavik Ambani Avatar asked Jan 17 '12 06:01

Bhavik Ambani


1 Answers

I think you can try it like this;

Here is a simple example for you question. First, we assume we have a project directory like D:\javademo. In this working directory we then create a main class HelloWorld.java and thtat contains our other JAR files, like commons-lang.jar. Now, we must archive our main classes HelloWorld and commons-lang.jar into test.jar file.

First we must edit our manifest file so that we can specify our class-path and main-class like this:

Manifest-Version: 1.0 
Created-By: tony example
Class-Path: test.jar commons-lang.jar
Main-Class: org.tony.java.HelloWorld

We named this file test.mf. Now we use the jar command to generate our JAR file like this:

jar -cvfm test.jar test.mf -C ./ .

Then it will generate the JAR file test.jar. You can use this command to run this main class using java command:

java -jar test.jar

That is my solution. I hope it give you something helpful...

like image 117
Tony Avatar answered Sep 28 '22 02:09

Tony