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!