我正在開發一個OSGi捆綁軟件,它將服務實現爲本地可執行文件的包裝。也就是說,該服務使用ProcessBuilder
運行可執行文件,爲其提供一些數據並檢索結果。我的問題是關於打包這個包的最佳方式。本機可執行文件包含大量相關數據文件,這些文件都必須存在於磁盤上供工具運行。我發現在OSGi中處理原生DLL的引用很多,但沒有一個解決與必須存在於磁盤上的捆綁軟件相關聯的文件,而不是僅通過類路徑可檢索的文件。包含OSGi捆綁包的其他資源
我在想,我可以直接在捆綁包中包含exectuable和依賴文件,然後在啓動捆綁包時以編程方式提取到某個目錄。我能想到的另一個選擇是將可執行文件放在某處並設置指向它的系統屬性,但我希望將配置保持在最低限度。
不是特定於特定OSGi實現的解決方案會很好,但如果不是,我使用Equinox。
謝謝!
OSGi服務平臺核心規範版本4版本4.3提供了['BundleContext.getDataFile(String)'](https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getDataFile% 28java.lang.String%29),這可能是合適的。 – 2016-04-20 20:47:43