2011-01-12 3 views
3

내 프로젝트에 jar 파일을 만들었습니다. MANIFEST.MF에 문제가 있습니다. 다음과 같이 내 MANIFEST.MF의 구조는 다음과 같다 :이 사용하는 명령을 실행할 때병에 MANIFEST.MF 문제가 있습니다.

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

는 : 전체 클래스 - 원하는 다음

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

를 그 ..... 제대로 작동하지만 난 해달라고 경로 이름.

그래서 다음 내 MANIFEST.MF의 구조가 될 때 같이 나는이 다음과 같은 클래스 경로 사용하여 실행하려면 :

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

와 지금은 사용하여이 명령을 실행하면

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

다음 화면이 표시되어 오류 : ---

---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 

나에게 그것에 대한 해결책을 알려주세요 .....

답변

1

분명히 필요한 라이브러리는 실제 클래스 경로에 없습니다. 내 understandig에 따라서

The URLs in the Class-Path header are given relative to the URL of the JAR file of the applet or application.

Here it says:는, 자바는 지금이 위치에있는 헥터 라이브러리 (만)을 찾습니다 : 당신이 -jar 옵션으로 자바를 실행하면 것을

/usr/local/bin/lib/hector-0.6.0-17.jar 

참고 classpath 항목은 만 가져오고 -cp 또는 $CLASSPATH의 추가 항목은 무시됩니다.

관련 문제