Упаковка 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.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3