>Java >java지도 시간 >애플릿 또는 웹스타트 환경에서 원래 JAR의 매니페스트 파일에 액세스하는 방법은 무엇입니까?

애플릿 또는 웹스타트 환경에서 원래 JAR의 매니페스트 파일에 액세스하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-19 13:45:02297검색

How to Access the Manifest File of the Originating JAR in Applet or Webstart Environments?

원본 JAR의 매니페스트 파일 검색

애플리케이션을 시작한 JAR의 매니페스트 파일에 액세스하려면 getClass( ).getClassLoader().getResources(...)는 특히 애플릿이나 웹스타트와 같은 환경에서는 충분하지 않을 수 있습니다. 응용 프로그램. 고려해야 할 두 가지 대체 접근 방식은 다음과 같습니다.

검색된 URL을 통해 반복:

  1. getResources()를 사용하여 잠재적인 매니페스트 파일을 나타내는 URL 컬렉션을 검색합니다.
  2. 이 URL을 반복하면서 원하는 URL을 찾을 때까지 각 URL을 매니페스트로 읽습니다.

예제 코드:

Enumeration<URL> resources = getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
while (resources.hasMoreElements()) {
    try {
        URL url = resources.nextElement();
        Manifest manifest = new Manifest(url.openStream());
        // If manifest is null, try using JarInputStream instead: manifest = url.openStream().getManifest();

        // Verify and process the manifest as needed
        ...
    } catch (IOException e) {
        // Handle the exception
    }
}

ClassLoader 유형 확인 및 findResource() 사용:

  1. getClass().getClassLoader()가 다음의 인스턴스인지 확인합니다. java.net.URLClassLoader, 일반적으로 AppletClassLoader를 포함한 Sun 클래스로더의 경우입니다.
  2. 그렇다면 이를 캐스팅하고 findResource()를 사용하여 매니페스트를 검색합니다.

예 코드:

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
try {
    URL url = cl.findResource("META-INF/MANIFEST.MF");
    Manifest manifest = new Manifest(url.openStream());
    // Do your stuff with the manifest
    ...
} catch (IOException e) {
    // Handle the exception
}

위 내용은 애플릿 또는 웹스타트 환경에서 원래 JAR의 매니페스트 파일에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.