Что вызывает UnsatisfiedLinkError для jniwrap64.dll? - PullRequest
0 голосов
/ 14 декабря 2010

У нас есть веб-приложение GWT, которое использует JNI для вызова библиотеки DLL.Мы также строим dll.Он отлично работает на моей машине разработчика, которая является 64-битной Windows 7, работает под управлением Java 6 и запускает веб-приложения в Tomcat 6. Но когда мы запускаем ее на виртуальной машине тестера, которая работает под управлением 32-битной WinXP, она выдает ошибку

java.lang.UnsatisfiedLinkError: Cannot load native JNIWrapper library (jniwrap64.dll)
at com.jniwrapper.Library.loadNativeCode(SourceFile:78)
at com.jniwrapper.Library.loadNativeCode(SourceFile:103)
at com.jniwrapper.Library.ensureNativeCode(SourceFile:113)
at com.jniwrapper.Library.load(SourceFile:189)

Мой JRE_HOME настроен на 32-разрядную версию Java 6, потому что я хотел, чтобы сборка работала на 32-разрядной машине, но, очевидно, я неправильно понимаю, как32- или 64-разрядные версии Java работают при компиляции веб-приложения.

И да, DLL-библиотека, которую мы вызываем, встроена в .war, поскольку она работает на моем компьютере.

Я также погуглил jniwrap64.dll, но не нашел много интересного.

Добавлено для пояснения: jniwrap64.dll - это не dll, который я создал, и мой код явно не загружает эту библиотеку.,Это часть моего замешательства, что это за библиотека, почему она загружается и т. Д. Я предположил, что jniwrap64.dll - это некая системная библиотека, которую нужно установить.Мой код, который загружает нашу библиотеку, выглядит следующим образом:

Library myLib = Library(path);
myLib.load(this.getClass().getClassLoader());

1 Ответ

0 голосов
/ 14 декабря 2010

Когда вы загружаете dll с помощью System.loadLibrary (), вы загружаете "jniwrap64.dll" или "jniwrap32.dll"?Можете ли вы показать нам строку кода, которая загружает эту библиотеку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...