|
|
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
Есть такая штука - 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", ".") - тоже не помогает. Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2012, 22:19:22 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
chabapok, http://jna.java.net/javadoc/com/sun/jna/NativeLibrary.html#getInstance%28java.lang.String%29 В джаре он искать и не будет. Решение в Вашем случае может быть, насколько я знаю, только одно - выудить длл вначале куда-нибудь, например, в текущую директорию, темповскую директорию перед тем, как ее использовать. Вот тут описано подробно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2012, 22:45:32 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
P.S. Вроде как есть либа, которая позволяет грузить прямо из джара, но там не совсем бесплатно. Да и скорее всего, она делает то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2012, 22:50:56 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
Большой Синий Китвыудить длл вначале куда-нибудь +1 грузит dll ведь Ось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2012, 23:04:50 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
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 жила и вызывалась из подписанного апплета для работы с С++ крипто-либой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2012, 01:30:56 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
Интересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2012, 09:55:05 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
GarrickИнтересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь... так вопрос не в том чтобы загрузить длл а в том чтоб непременно из архива (из жара). Это из разряда "как сделать через жопу но чтоб работало". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2012, 10:23:53 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
1024GarrickИнтересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь...так вопрос не в том чтобы загрузить длл а в том чтоб непременно из архива (из жара). Это из разряда "как сделать через жопу но чтоб работало".есть большая вероятность что никак, так как DLL управляется операционной системой, а не JVM. и как следствие ОС должна иметь возможность доступа к DLL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2012, 10:45:07 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
VoDA, +1 один мужик, запихнул её в EXE :) и писал много-много кода (сам грузил в оперативку ОСи) чтобы программа состояла из одного файла. Я долго читал это бред кода, а потом плюнул (результат перестал интересовать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2012, 10:52:34 |
|
||
|
как загрузить dll-либу, которая находится внутри jar?
|
|||
|---|---|---|---|
|
#18+
1024GarrickИнтересно, а как это делает SWT? Там ведь тоже куча нативных DLL, SO. Можно порться в исходниках, если чего там поймёшь... так вопрос не в том чтобы загрузить длл а в том чтоб непременно из архива (из жара). Это из разряда "как сделать через жопу но чтоб работало". Так я как раз про это самое. Загляни внутрь swt.jar (если у тебя есть eclipse в каталоге plugins есть файл org.eclipse.swt.xxxxx xxxxx-версия) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2012, 15:57:59 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=308&tid=2132521]: |
0ms |
get settings: |
13ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
39ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 334ms |
| total: | 504ms |

| 0 / 0 |
