자바

2013-06-01 2 views
3

내 MANIFEST.MF 파일이 보이는 this자바

같은 내 클래스 패스 인쇄() 주 -

ClassLoader cl = ClassLoader.getSystemClassLoader(); 

     URL[] urls = ((URLClassLoader)cl).getURLs(); 

     for(URL url: urls){ 
      System.out.println(url.getFile()); 
     } 

가 나는 항아리를 실행하고 내가 jar 파일을 실행하면

java -jar "C:\Project-1.0-SNAPSHOT.jar" 

된 직후 파일, 나는 매니페스트 파일에 설정된 클래스 경로가 표시되지 않습니다. C:\Project-1.0-SNAPSHOT.jar의 절대 경로 만 볼 수 있습니다. 왜 이렇게이다? 분명히 코드로 인해 java.lang.NoClassDefFoundError 오류를 내가

+1

같은 문제가 있는데 해결책을 찾았습니까? – Andrea

답변

0

당신이 매니페스트 파일의 마지막 줄의 끝에 줄 바꿈이 희망이 jar 파일을 생성 할 maven-jar-plugin을 사용하고

주를 실행하는 데 실패합니다. 그렇지 않다면 Manifest.mf의 마지막 줄 다음에 줄 바꿈을 추가하십시오.

+0

예 - 있습니다. – user375868

+0

@ user375868 항아리 경로의 종속 항아리가 제대로 작동합니까? 절대 경로를 넣어보십시오. –

+0

문제는 java -jar를 실행할 때 매니페스트에 언급 된 "클래스 경로"가 읽히지 않는다는 것입니다. – user375868