閱讀您自己的Jar 的清單
存取與您自己的類別關聯的清單檔案可能是一個挑戰,特別是在使用getClass( ).getClassLoader().getResource(...)。如果從 applet 或 webstart 環境調用,此方法可能會從不同的 .jar 檔案傳回清單。
要克服此限制,請考慮以下解決方案:
1。迭代清單 URL
迭代 getResource(...) 傳回的 URL 並將它們作為清單讀取,直到找到正確的 URL:
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 。使用URLClassLoader
如果getClass().getClassLoader() 是java.net.URLClassLoader 的實例,您可以強制轉換並使用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 }
眾所周知,這種方法可以返回正確的小程式清單。
以上是如何在 Java 中存取您自己的 Jar 的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!