將本機和JNI 庫捆綁在JAR 中
最近,開發人員尋求一種方法來在一個JAR 中整合多個相依性(包括本機庫)。單一 JAR 檔案。該策略旨在簡化分發並減少重新分發問題。
原生庫難題
這項工作中遇到的挑戰之一是包含實際的原生庫,作為僅關注 JNI 庫的現有嘗試。此外,先前的解決方案似乎是針對特定的本機依賴項插件量身定制的,可能不適合一般重新分發。
綜合解決方案
首選方法涉及利用System.load(File) 來載入函式庫,而不是傳統的System.loadLibrary(String),後者依賴java.library.path 系統屬性。這種方法不需要使用者手動安裝庫,但如果 JAR 沒有封裝所有必需的庫,則可能會影響跨平台的可移植性。
實作過程
在主類別的靜態初始化器中實作程式碼來:
案例研究:jzmq
此解決方案已在jzmq、Java 中使用ZeroMQ 的綁定,其中混合功能允許在無法載入嵌入式版本時回退到沿著java.library.path 搜尋庫。
以上是如何將本機庫和 JNI 庫捆綁在單一 JAR 檔案中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!