2017-12-06 3 views
0
InputStream manifestStream = ServiceController.class.getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF") 

Manifest manifest= new Manifest(manifestStream); 

위의 코드는 jar 파일에서 Mac의 명령 줄에서 jar를 실행할 때 다른 manifest 파일을 읽습니다.jar 파일을 실행할 때 잘못된 manifest.mf를로드하는 이유

내가 테스트 할 수있는 한,이 경우에는 MAC 및 AWS 서비스 인스턴스 만 표시되며 Windows 및 Linux 서버는 표시되지 않습니다. 이것은이 항아리가 Windows 및 Linux 서버에서 예상되는 매니페스트 파일을 읽을 수 있음을 의미합니다.

누군가 좀 봐 주시겠습니까?

실행 된 명령을 java -jar xxx.jar

JAR 파일 구조 : 7Z 또는 우편 및 폴더 META-INF 모습으로 enter image description here

답변

0

열기 file.jar - 확인> MANIFEST.MF 파일 -> 확인 자신의 메인 클래스 이 매니페스트 파일에 있습니다. 그리고 당신은 제거해야합니다 * .RSA, *

+0

그것은 우리의 항아리 –

+0

에 하나의 MANIFEST.MF 파일입니다 (단 MANIFEST.MF 파일을 보관) 폴더 META-INF에있는 .MF이 파일 사실 링크는 다음과 같습니다 META-INF/MANIFEST.MF 및이 매니페스트 파일에서 Main-Class를 확인 하시겠습니까? –

+0

네,이 항아리의 메인 클래스와 매니페스트 파일에는 확실하지만 메인 클래스가 두 개 있습니다. 하나는 입니다. "mainClass : com.xxx.xxx.starter"', 다른 클래스는 입니다. ""메인 클래스 : rg.springframework.boot.loader.WarLauncher "' –

관련 문제