2015-01-27 3 views
1

Я создаю dll с Visual Studio 2008 и вызывается java side throuth jni. Он отлично работает в машине A, но не работает в машине B. Инфо-ошибка как: java.lang.UnsatisfiedLinkError: xxx.dll Не удается найти зависимые библиотекиВ чем причина java.lang.UnsatisfiedLinkError в моей ситуации

Информационный конфигурации является, как показано ниже (ОС и JDK тот же):

машины:

  • Win7 64bit;
  • Java версии "1.7.0_21" Java (TM) SE Runtime Environment (сборка 1.7.0_71-b14) Java HotSpot (TM) Client VM (сборка 24.71-b01, смешанный режим, обмен)
  • затмение-стандарт -kepler-SR2-win32-x86_64

Б машина:

  • Win7 64-битной;
  • Java версии "1.7.0_65" Java (TM) SE Runtime Environment (сборка 1.7.0_65-b19) Java HotSpot (TM) Client VM (сборка 24.71-b01, смешанный режим, обмен)
  • затмение-Java -luna-SR1a-win32

поколение код из DLL является многопоточной отладки (/ МПД).

Я понятия не имею о причине, поэтому, пожалуйста, дайте мне знать, если вам нужна дополнительная информация, чтобы судить причину.

Спасибо за вашу помощь заранее.

+1

Скорее всего, вам не хватает библиотеки времени выполнения MSVC2008 –

+0

@MarkRotteveel. Благодарю. Но что я должен сделать, чтобы установить его легким способом? Нет необходимости устанавливать VS 2008 на машину B. Правильно?^_^ – Gearon

+0

Предполагая, что это настоящая проблема, вам, разумеется, не нужно устанавливать визуальную студию, вам нужно только установить библиотеку времени выполнения, например [Распространяемый пакет Microsoft Visual C++ 2008 с пакетом обновления 1 (x86)] (http: //www.microsoft.com/en-us/download/details.aspx?id=5582) или [Распространяемый пакет Microsoft Visual C++ 2008 с пакетом обновления 1 (x64)] (http://www.microsoft.com/en-us/ скачать/details.aspx? ID = 2092) –

ответ

0

java.lang.UnsatisfiedLinkError: xxx.dll Не удается найти зависимые библиотеки находится в B забросил машину, но не в машине, потому что зависимые библиотеки этой библиотеки может не быть найдено dll в машине B, и для ее исправления вы можете добавить путь зависимых библиотек к пути к среде. Чтобы получить зависимые библиотеки, выполните предложение @ SubOptimal.

1

Чтобы найти пропущенную зависимость, используйте Walker Dependency. Откройте DDL, и он покажет вам все DDL, от которых это зависит. Он также покажет вам, какой из них нельзя найти в текущей системе.

http://www.dependencywalker.com/