동적 환경에서 JAR의 매니페스트 파일에 액세스
애플리케이션이 동적 환경에서 실행되면 JAR의 매니페스트 파일을 검색하는 것이 어려워집니다. 애플릿이나 웹스타트 같은 거죠. getClass().getClassLoader().getResources(...)를 사용하는 표준 접근 방식은 대상 클래스를 호스팅하는 JAR이 아닌 런타임에 로드된 첫 번째 JAR에서 매니페스트를 반환합니다.
이를 극복하기 위해 두 가지 방법이 있습니다. 탐색 가능:
1. 리소스 URL 반복:
getResources()에서 반환된 URL을 반복하면서 원하는 URL을 찾을 때까지 각 URL을 매니페스트로 읽습니다.
Enumeration<URL> resources = getClass().getClassLoader() .getResources("META-INF/MANIFEST.MF"); while (resources.hasMoreElements()) { try { Manifest manifest = new Manifest(resources.nextElement().openStream()); // Check if it's the target manifest and perform necessary actions. } catch (IOException E) { // Handle exception. } }
2. findResource 메소드 활용:
클래스 로더가 java.net.URLClassLoader(예: AppletClassLoader)의 인스턴스인 경우 이를 캐스팅하고 애플릿에 대한 Manifest를 반환하는 것으로 알려진 findResource()를 직접 호출합니다. .
URLClassLoader cl = (URLClassLoader) getClass().getClassLoader(); try { URL url = cl.findResource("META-INF/MANIFEST.MF"); Manifest manifest = new Manifest(url.openStream()); // Use the manifest. } catch (IOException E) { // Handle exception. }
위 내용은 동적 환경에서 JAR의 매니페스트 파일에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!