Maison > Java > javaDidacticiel > Comment accéder au fichier manifeste d'un JAR dans des environnements dynamiques ?

Comment accéder au fichier manifeste d'un JAR dans des environnements dynamiques ?

Barbara Streisand
Libérer: 2024-11-13 13:47:02
original
730 Les gens l'ont consulté

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

Accès au fichier manifeste d'un JAR dans des environnements dynamiques

Récupérer le fichier manifeste d'un JAR devient difficile lorsque l'application est lancée à partir d'environnements dynamiques comme les applets ou Webstart. L'approche standard utilisant getClass().getClassLoader().getResources(...) renvoie le manifeste du premier JAR chargé dans le runtime, pas celui hébergeant la classe cible.

Pour surmonter cela, deux méthodes peuvent être explorés :

1. Parcourez les URL de ressources :

Parcourez les URL renvoyées par getResources(), en lisant chacune comme un manifeste jusqu'à ce que celle souhaitée soit trouvée.

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.
    }
}
Copier après la connexion

2. Utiliser la méthode findResource :

Si le chargeur de classe est une instance de java.net.URLClassLoader (comme AppletClassLoader), lancez-le et appelez directement findResource(), qui est connu pour renvoyer le manifeste pour les applets .

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.
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal