powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как загрузить dll-либу, которая находится внутри jar?
11 сообщений из 11, страница 1 из 1
как загрузить dll-либу, которая находится внутри jar?
    #37669597
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая штука - http://code.google.com/p/jnaerator/, при помощи нее формирую jar, который включает в себя класы JNA и dll-ку

Но столкнулся с проблемой - когда сгенерированый код пытается загрузить эту dll, но не видит ее

грузит так:

public static final NativeLibrary JNA_NATIVE_LIB = NativeLibrary.getInstance("mylib");


И выбрасывает исключение:
Unable to load library 'mylib': Не найден указанный модуль.

Если закидываю mylib.dll в windows/system32, то все работает. То есть - он не может подхватить dll, которая запакована в jar, хотя классы из этого jar подхватывает

Я пробовал явно прописать расширение "mylib.dll" - не помогло. пробовал указать путь, по которому она лежит в jar (lib/win32/mylib.dll) Пробовал установить System.setProperty("jna.library.path", ".") - тоже не помогает. Что я делаю не так?
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669623
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapok,

http://jna.java.net/javadoc/com/sun/jna/NativeLibrary.html#getInstance%28java.lang.String%29

В джаре он искать и не будет.

Решение в Вашем случае может быть, насколько я знаю, только одно - выудить длл вначале куда-нибудь, например, в текущую директорию, темповскую директорию перед тем, как ее использовать.

Вот тут описано подробно.
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669628
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Вроде как есть либа, которая позволяет грузить прямо из джара, но там не совсем бесплатно. Да и скорее всего, она делает то же самое.
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669639
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Китвыудить длл вначале куда-нибудь
+1
грузит dll ведь Ось
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669758
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chabapokЕсли закидываю mylib.dll в windows/system32, то все работает. То есть - он не может подхватить dll, которая запакована в jar, хотя классы из этого jar подхватывает

Я пробовал явно прописать расширение "mylib.dll" - не помогло. пробовал указать путь, по которому она лежит в jar (lib/win32/mylib.dll) Пробовал установить System.setProperty("jna.library.path", ".") - тоже не помогает. Что я делаю не так?Не претендуя на оригинальность расскажу как мы грузили DLL.

1. Чтобы не делать полный гадюшник в ттемп директории мы создавали в ней директорию с спец названием (название приложения), если уже было, то чистили под ноль.
2. в ней директорию с рандомным именем.
3. в рандомную диру копировали dll для 32 и 64 бита, исходный dll-ки жили в jar.
4. в зависимости от версии ОС цепляли ту или иную либу указывая путь внутри темп директории.
5. пользовались либой через JNI.

весь код базировался на JavaSE, никаких доп либ.


PS а сама dll жила и вызывалась из подписанного апплета для работы с С++ крипто-либой
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669868
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь...
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669905
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarrickИнтересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь...

так вопрос не в том чтобы загрузить длл а в том чтоб непременно из архива (из жара). Это из разряда "как сделать через жопу но чтоб работало".
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669934
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024GarrickИнтересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь...так вопрос не в том чтобы загрузить длл а в том чтоб непременно из архива (из жара). Это из разряда "как сделать через жопу но чтоб работало".есть большая вероятность что никак, так как DLL управляется операционной системой, а не JVM. и как следствие ОС должна иметь возможность доступа к DLL.
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37669942
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA,
+1
один мужик, запихнул её в EXE :) и писал много-много кода (сам грузил в оперативку ОСи) чтобы программа состояла из одного файла.
Я долго читал это бред кода, а потом плюнул (результат перестал интересовать).
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37670616
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024GarrickИнтересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь...

так вопрос не в том чтобы загрузить длл а в том чтоб непременно из архива (из жара). Это из разряда "как сделать через жопу но чтоб работало".
Так я как раз про это самое. Загляни внутрь swt.jar (если у тебя есть eclipse в каталоге plugins есть файл org.eclipse.swt.xxxxx xxxxx-версия)
...
Рейтинг: 0 / 0
как загрузить dll-либу, которая находится внутри jar?
    #37670673
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
Мне достаточно идеи - что либу надо вытянуть из jar. Как оно там в swt сделано - это уже особо не важно.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как загрузить dll-либу, которая находится внутри jar?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]