jar manifest를 설정하여 jar 옆에있는 폴더 내의 모든 라이브러리 (jar)를로드하려고합니다. 이 같은폴더의 모든 jar를 사용하기 위해 jar Manifest를 가질 수 있습니까?
매니페스트 외모 :
- MyJar.jar
- libs/
-----lib1.jar
-----lib2.jar
내가 이런 식으로 실행하기 위해 노력하고있어 :
Manifest-Version: 1.0
Class-Path: libs/
Main-Class: path.to.my.class.Main
배치는 다음과 같다
java -jar MyJar.jar
를 내가 얻을 폴더 내의 항아리에있는 클래스에 대한 NoClassDefinition 오류.
누군가가 궁금한 경우이 폴더에는 클래스를로드하는 동안 처리되는 선택적 jar가 들어있을 수 있습니다. 그 '하드 코드 된 또는 autogenerated 것들을 사용할 수 없습니다 swhy.
아이디어가 있으십니까?
업데이트 현재 매니페스트 자체에서는이 질문을 표현할 수 없으므로 다시 질문하십시오. 그 대답은 항아리 추출의 필요성이 없으면 유일하게 실용적 이었지만 작동합니다.
요약 답은 no입니다. 특정 종속성이있는 경우 매니페스트 파일만으로는 수행 할 수 없습니다.
AFIK JAR의 클래스 경로는'JAR' 파일의 루트에서 시작됩니다. 'Spring Boot' 나'OSGI' 컨테이너처럼 동적으로로드하지 않는 한 클래스 나 JAR을 서브 디렉토리에 넣을 수 없습니다. – 11thdimension
밝혀졌습니다. JAR 이름으로 경로를 지정해야합니다. 이 링크를 확인하십시오. http://todayguesswhat.blogspot.com/2011/03/jar-manifestmf-class-path-referencing.html?_sm_au_=ivVTSRf571T1SvZP – 11thdimension
위의 링크를 먼저 실행했는데 위의 내용은 위의 내용을 기반으로 합니다만, 일하지 마라. 클래스 경로에 정의 된 해당 폴더 내의 파일 만 찾습니다. 폴더만으로 작동하지 않는 것 같습니다. (즉, libs/또는 ./libs/) – javydreamercsw