dhananjay
dhananjay

Reputation: 57

problem with MANIFEST.MF in jar

I have created my jar file in the following folder:

/usr/local/bin/niidle.jar

And I have one jarfile which is in the following folder

/Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar

And this file 'hector-0.6.0-17.jar' I have to include in MANIFEST.MF in jar.

And when I mention class path in MANIFEST.MF as follows:

Manifest-Version: 1.0
Main-Class: com.ensarm.niidle.web.scraper.NiidleScrapeManager
Class-Path: /Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar 

When I run this using command:

java -jar /usr/local/bin/niidle.jar

It works properly..

But I dont want to give full Class-Path name, I have to give Class-Path as follows:

Manifest-Version: 1.0
Main-Class: com.ensarm.niidle.web.scraper.NiidleScrapeManager
Class-Path: lib/hector-0.6.0-17.jar 

And when I run this using command:

java -jar /usr/local/bin/niidle.jar

It is showing error message:

Exception in thread "main" java.lang.NoClassDefFoundError: me/prettyprint/hector/api/Serializer
    at com.ensarm.niidle.web.scraper.NiidleScrapeManager.main(NiidleScrapeManager.java:21)
Caused by: java.lang.ClassNotFoundException: me.prettyprint.hector.api.Serializer
   at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
   at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
   ... 1 more

Please tell me solution for that...

Upvotes: 0

Views: 550

Answers (2)

ssmir
ssmir

Reputation: 1542

I see at least two solutions:

  1. store hector-0.6.0-17.jar inside niidle.jar and use a relative path in Class-Path. E.g. Class-Path: lib/hector-0.6.0-17.jar (for niidle.jar/lib/hector-0.6.0-17.jar)
  2. java -cp /Projects/EnwelibDatedOct13/Niidle/lib/hector-0.6.0-17.jar -jar /usr/local/bin/niidle.jar

Upvotes: 1

Raghuram
Raghuram

Reputation: 52635

Create a lib folder in the folder where you are running the command, put hector-0.6.0-17.jar in it and try running the command again.

Upvotes: 0

Related Questions