2011-02-04 6 views
2

최근에는 Manifest.mf 파일에 클래스 패 쉬와 관련하여 혼란스러워졌습니다. 그래서 내가 원하는 것은 distribution.jar 파일을 일부 아웃소싱하는 것입니다. 자바 소스 파일을 변경하지 않고 파일을 옆에 놓습니다.Distribution Manifest.mf의 단일 점 (".")은 무엇을 의미합니까?

다음 예제 :이 시점에서 나는이 같은 속성 파일을 열 수 있습니다

this.getClass().getClassLoader().getRessourceAsStream("/config/jdbc.properties"); 

jdbc.properties은 '설정'라는 이름의 패키지 '자원'이라는 일식 sourcefolder에 있습니다. 이제 배포판을 빌드 할 때 distribution.jar 옆에있는 폴더에 이들을 아웃소싱하지만, 표시된 소스 코드를 변경하지 않고 찾을 수 있습니다.

만 (absolout하는 Pathes없이) 지금까지 근무 generell 솔루션은 다음 MANIFEST.MF이었다 "."

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 17.1-b03 (Sun Microsystems Inc.) 
Main-Class: com.ymene.Main 
Class-Path: . 

Class-Path에서 .jar의 루트를 가리키는 것처럼 보입니까? 전에는 매니페스트 파일에서 그걸 본적이 없어요. 궁금합니다. 경로가 동일 할 경우 리소스가 jar 파일 내부 또는 외부에 빌드되는지 여부에 상관없이 내 Java-sourcecode를 전혀 변경하지 않으려 고하는 내 소원을 성취하려는 올바른 접근 방법일까요?

"." manifest.fm 파일에 어떤 원하지 않는 부작용이 있습니까? 그리고 그것이 사실이 아닐 경우 Ant를 사용하여 Manifest.mf Class-Path 항목 (".")을 생성 할 수 있습니까? 아니면이를 달성하기위한 다른 해결책이 있습니까? 이 주제에 어떤 도움에 미리

감사합니다, ymene

답변

4

단일 점은 "이 디렉토리"를 의미한다.

+0

이 특별한 경우의 "이 디렉토리"는 .jar 내의 manifest.mf 파일의 디렉토리를 의미합니까? pathes가 그때 일하지 말아야했기 때문에 이것은 나에게 다소 혼란 스러웠을 것이거나, 내가 놓치고있는 부분이 아직도있다? – crusam

+1

아니요, jar 파일이있는 경로를 의미합니다. "lib /"와 같은 하위 디렉토리에서 라이브러리를 사용하는 경우 매니페스트의 클래스 경로 섹션에있는 모든 jar를 언급해야합니다. – Matten

관련 문제