Heim > Java > javaLernprogramm > Wie greife ich in dynamischen Umgebungen auf die Manifestdatei einer JAR zu?

Wie greife ich in dynamischen Umgebungen auf die Manifestdatei einer JAR zu?

Barbara Streisand
Freigeben: 2024-11-13 13:47:02
Original
730 Leute haben es durchsucht

How to Access the Manifest File of a JAR in Dynamic Environments?

Zugriff auf die Manifestdatei einer JAR in dynamischen Umgebungen

Das Abrufen der Manifestdatei einer JAR wird zu einer Herausforderung, wenn die Anwendung aus dynamischen Umgebungen gestartet wird wie Applets oder Webstart. Der Standardansatz mit getClass().getClassLoader().getResources(...) gibt das Manifest aus der ersten in die Laufzeit geladenen JAR zurück, nicht aus der JAR, die die Zielklasse hostet.

Um dies zu umgehen, gibt es zwei Methoden kann erkundet werden:

1. Durch Ressourcen-URLs iterieren:

Durchlaufen Sie die von getResources() zurückgegebenen URLs und lesen Sie jede als Manifest, bis die gewünschte gefunden wird.

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.
    }
}
Nach dem Login kopieren

2. Verwenden Sie die findResource-Methode:

Wenn der Klassenlader eine Instanz von java.net.URLClassLoader ist (z. B. AppletClassLoader), wandeln Sie ihn um und rufen Sie findResource() direkt auf, was bekanntermaßen das Manifest für Applets zurückgibt .

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.
}
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage