자신의 Jar의 매니페스트 읽기
자신의 클래스와 연결된 Manifest 파일에 액세스하는 것은 어려울 수 있으며, 특히 getClass( ).getClassLoader().getResource(...). 이 메서드는 애플릿이나 웹스타트 환경에서 호출되는 경우 다른 .jar 파일의 매니페스트를 반환할 수 있습니다.
이 제한을 극복하려면 다음 해결 방법을 고려하세요.
1. 매니페스트 URL 반복
getResource(...)에서 반환된 URL을 반복하고 올바른 URL을 찾을 때까지 매니페스트로 읽습니다.
Enumeration<URL> resources = getClass().getClassLoader() .getResources("META-INF/MANIFEST.MF"); while (resources.hasMoreElements()) { try { Manifest manifest = new Manifest(resources.nextElement().openStream()); // check that this is your manifest and do what you need or get the next one ... } catch (IOException E) { // handle } }
2 . URLClassLoader 사용
getClass().getClassLoader()가 java.net.URLClassLoader의 인스턴스인 경우 이를 캐스팅하고 findResource(...)를 사용할 수 있습니다.
URLClassLoader cl = (URLClassLoader) getClass().getClassLoader(); try { URL url = cl.findResource("META-INF/MANIFEST.MF"); Manifest manifest = new Manifest(url.openStream()); // do stuff with it ... } catch (IOException E) { // handle }
이 접근 방식은 애플릿에 대한 올바른 매니페스트를 반환하는 것으로 알려져 있습니다.
위 내용은 Java에서 자신의 Jar 매니페스트에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!