將 DLL 打包在 JAR 檔案中
您已取得一個第三方 JAR 函式庫,該函式庫附帶兩個對應的 DLL 檔案。您的 Java 應用程式依賴該程式庫,並且您尋求將所有元件(您的程式碼、第三方 JAR 和 DLL)合併到一個方便的 JAR 檔案中。
打包 DLL
JAR 檔案本質上就像 ZIP 檔案一樣。要將 DLL 包含在 JAR 中,只需將它們放在其結構中的任何位置即可。然而,僅僅打包 DLL 是不夠的。在使用它們之前,您必須從 JAR 中提取它們並將它們保存到硬碟上的指定位置。
程式碼範例
這裡有一個示例性Java 程式碼區塊,示範了這個過程:
// Package the DLLs in the JAR file // ... (your code here) // Extract and load the DLLs from the JAR private static void loadFromJar() { // Determine the temporary directory path String path = "AC_" + new Date().getTime(); // Extract the DLLs and load them into memory loadLib(path, "acwrapper"); loadLib(path, "aamapi51"); loadLib(path, "libeay32"); } // Extract and load a specific DLL private static void loadLib(String path, String name) { InputStream in = Foo.class.getResourceAsStream("/lib-bin/" + name + ".dll"); File fileOut = new File(System.getProperty("java.io.tmpdir") + "/" + path + "/lib-bin/" + name + ".dll"); OutputStream out = FileUtils.openOutputStream(fileOut); IOUtils.copy(in, out); in.close(); out.close(); System.load(fileOut.toString()); }
在此程式碼中,DLL 被提取到「path」指定的暫存目錄,然後載入到使用System.load() 的記憶體。請記住,您可能需要根據特定的 JAR 結構和 DLL 位置調整確切的檔案路徑和資源路徑。
以上是如何將 DLL 與第三方 JAR 檔案打包以在 Java 應用程式中使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!