Maison >Java >javaDidacticiel >Comment accéder au manifeste de votre propre pot en Java ?

Comment accéder au manifeste de votre propre pot en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 11:38:021019parcourir

How to Access the Manifest of Your Own Jar in Java?

Lecture du manifeste de votre propre pot

Accéder au fichier manifeste associé à votre propre classe peut être un défi, en particulier lorsque vous utilisez getClass( ).getClassLoader().getResource(...). Cette méthode peut renvoyer le manifeste à partir d'un autre fichier .jar si elle est appelée depuis un environnement applet ou webstart.

Pour surmonter cette limitation, envisagez les solutions suivantes :

1. Itération à travers les URL des manifestes

Parcourez les URL renvoyées par getResource(...) et lisez-les sous forme de manifestes jusqu'à ce que vous trouviez la bonne :

Enumeration<URL> resources = getClass().getClassLoader()
   .getResources("META-INF/MANIFEST.MF");
while (resources.hasMoreElements()) {
     try {
       Manifest manifest = new Manifest(resources.nextElement().openStream());
       // check that this is your manifest and do what you need or get the next one
       ...
     } catch (IOException E) {
       // handle
     }
}

2 . Utilisation d'URLClassLoader

Si getClass().getClassLoader() est une instance de java.net.URLClassLoader, vous pouvez la lancer et utiliser findResource(...):

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
try {
   URL url = cl.findResource("META-INF/MANIFEST.MF");
   Manifest manifest = new Manifest(url.openStream());
   // do stuff with it
   ...
} catch (IOException E) {
   // handle
}

Cette approche est connue pour renvoyer le manifeste correct pour les applets.

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!

Déclaration:
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