Heim >Java >javaLernprogramm >Wie greife ich in Applet- oder Webstart-Umgebungen auf die Manifestdatei der ursprünglichen JAR zu?

Wie greife ich in Applet- oder Webstart-Umgebungen auf die Manifestdatei der ursprünglichen JAR zu?

DDD
DDDOriginal
2024-11-19 13:45:02297Durchsuche

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

Abrufen der Manifestdatei des ursprünglichen JAR

Um auf die Manifestdatei des JAR zuzugreifen, das Ihre Anwendung initiiert hat, können herkömmliche Methoden wie getClass( ).getClassLoader().getResources(...) reicht möglicherweise nicht aus, insbesondere in Umgebungen wie Applets oder Webstart-Anwendungen. Hier sind zwei alternative Ansätze zu berücksichtigen:

Iterieren durch abgerufene URLs:

  1. Verwenden Sie getResources(), um eine Sammlung von URLs abzurufen, die potenzielle Manifestdateien darstellen.
  2. Durchlaufen Sie diese URLs und lesen Sie jede einzelne als Manifest, bis Sie die URL gefunden haben, die Sie benötigen.

Beispielcode:

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
    }
}

Überprüfen des ClassLoader-Typs und Verwenden von findResource():

  1. Bestimmen Sie, ob getClass().getClassLoader() eine Instanz von java.net.URLClassLoader ist, was normalerweise bei Sun-Klassenladern der Fall ist , einschließlich AppletClassLoader.
  2. Wenn ja, wandeln Sie es um und verwenden Sie findResource(), um das Manifest abzurufen.

Beispielcode:

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
}

Das obige ist der detaillierte Inhalt vonWie greife ich in Applet- oder Webstart-Umgebungen auf die Manifestdatei der ursprünglichen JAR zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn