«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу упаковать библиотеки DLL со сторонним файлом JAR для использования в приложении Java?

Как я могу упаковать библиотеки DLL со сторонним файлом JAR для использования в приложении Java?

Опубликовано 22 января 2025 г.
Просматривать:558

How Can I Package DLLs with a Third-Party JAR File for Use in a Java Application?

Упаковка 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