在動態環境中存取JAR 的清單檔案
從動態環境啟動應用程式時,檢索JAR 的清單檔案變得具有挑戰性像小程式或網路啟動。使用 getClass().getClassLoader().getResources(...) 的標準方法傳回載入到執行時期的第一個 JAR 中的清單,而不是託管目標類別的 JAR。
為了克服這個問題,有兩種方法可以探討:
1。迭代資源 URL:
迭代 getResources() 傳回的 URL,將每個 URL 作為清單讀取,直到找到所需的 URL。
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. } }
2.利用findResource 方法:
如果類別載入器是java.net.URLClassLoader 的實例(例如AppletClassLoader),則對其進行強制轉換並直接呼叫findResource(),已知方法會傳回小程式的Manifest .
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. }
以上是如何在動態環境中存取 JAR 的清單檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!