我創建簡單的庫AppInfo提供一種簡單的方法來顯示關於在Java應用程序的版本上運行的軟件,這是從CI服務器自動構建結合特別有用總是有效的,自動更新的信息。如何獲取從桌面應用程序運行的JAR的名稱?
在我的圖書館,有必要從JAR(在桌面應用程序的情況下)讀取MANIFEST.MF這是從(不是從任何其他的類路徑)結束應用程序運行。目前我使用基於一個想法,採取形式Sun的論壇(該鏈接不工作了)一個解決方案:
String classContainer = classFromRightJar.getProtectionDomain().getCodeSource().getLocation().toString();
URL manifestUrl = new URL("jar:" + classContainer + "!/META-INF/MANIFEST.MF");
和一般的作品,但它迫使一個桌面應用程序的開發人員創建一個配置的附加豆位於特定JAR中的類的名稱。
有沒有更好的/通用的解決方案,它提供了一個名稱/位置/ MANIFEST.MF的/從JAR是從桌面應用程序運行?
感謝您的幫助
馬辛
想法是創造其連接和工作的圖書館。我擔心是否有辦法以可靠的方式做到這一點。我可能會強迫最終應用程序開發人員使用主存檔中的名稱(+包)類創建一個String bean。它仍然很容易做,更安全。感謝您的回答。順便說一下,堆棧跟蹤很好的破解。 – 2010-11-09 21:58:17