2012-02-01 2 views
0

Я пытаюсь импортировать проект веб-приложения IntelliJ java (проект Maven) из Linux-системы в системы Windows. Эта java-программа полагается на запуск 2 внешних библиотек.IntelliJ java.lang.UnsatisfiedLinkError: C: User ... java_bridge.dll: не удается найти зависимые библиотеки

В операционной системе Linux обе библиотеки загружаются нормально, когда я запускаю свои тестовые примеры (и успешно проходят), однако, когда я перешел к системе Windows, 1 из библиотек больше не работает должным образом (и да, я действительно удостоверился получить согласованные оконные двоичные файлы).

я получаю ошибку

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Admin\Desktop\SAINT\Packages\cellml-sdk-1.9\lib\cellml_java_bridge.dll: Can't find dependent libraries 

На данный момент я не уверен, что я делаю неправильно, потому что .dll присутствует в каталоге. Местоположение .dll также присутствует в переменной Windows PATH, и я указал на java, используя -Djava.library.path = C: \ Users \ Admin \ Desktop \ SAINT \ Packages \ cellml-sdk-1.9 \ lib

Благодаря

ответ

0

Посмотрите в журнале событий для бок о бок (SxS). Скорее всего, они укажут на недостающую dll. Если нет, используйте dependency walker

+0

Итак, я запустил D.Walker, и это дает мне 3 недостающие зависимости. Я добавил местоположение этих dll в PATH, но ходячий ходячок все еще говорит мне, что не может найти их. Какие-либо предложения? –

+0

ах, DW трудно использовать. Вы должны совать его, чтобы попытаться выяснить, что происходит. Evenlog обычно является более легким вариантом. Если это не сработает, вы также можете попробовать Process Monitor из sysinternals, он покажет вам java, пытаясь найти DLL в PATH и получить файлы, не найденные ошибки. –

+0

Хорошо, есть много вещей, я как бы отфильтровал его до тех пор, пока я не выполнил неудачные тесты. какое сообщение я ищу? –

0

сообщение об ошибке говорит: не удается найти зависимые библиотеки. DLL вам нужны другие DLL, и они должны быть в каталоге, расположенном в переменной среды PATH, а не в java.library.path.

Чтобы посмотреть, что это за зависимости, вы можете использовать objdump.

Вы не добавляли в PATH полные пути к файлам .dll, не так ли? Просто поместите каталоги, содержащие иждивенцев, в путь.

+0

Есть ли способ узнать, какие DLL необходимы и где они должны быть. Когда я сделал это на linux, это было намного проще ... –

Смежные вопросы