Я работаю над проектом Java, который использует JNI. JNI вызывает собственную библиотеку, которую я написал сам, скажем, mylib.dll, и это зависит от сторонней библиотеки libsndfile-1.dll.
Когда я запускаю свою программу, он сбрасывается с помощью
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
Я искал этот сайт (и другие), и я пробовал ряд исправлений:
-
Я запустил ходячий ходячий. DW дал пару предупреждений: две библиотеки, требуемые libsndfile, MPR.DLL и SHLWAPI.DLL, имели "неразрешенные импорт", но DW FAQ сказал, что эти предупреждения можно смело игнорировать.
-
Я исправил имена методов в mylib.dll, как предложено здесь. Названия методов каким-то образом были искалечены компилятором, но я добавил флаги компоновщика, и имена методов dll теперь точно соответствуют тем, которые содержатся в моем jni файле заголовка.
-
Я поместил все эти DLL в тот же каталог - тот же каталог, что и .jar, который их вызывает, - чтобы убедиться, что они находятся в правой части PATH.
Нет кубиков.
Кто-нибудь знает, что происходит?
Я делаю свое развитие в Visual Studio 2010 на MacBook pro (через Parallels). Я делаю свое тестирование в Windows XP на ноутбуке toshiba.