Sto lavorando a un progetto Java che utilizza JNI. JNI chiama una libreria personalizzata che ho scritto io stesso, diciamo mylib.dll, e che dipende da una libreria di terze parti, libsndfile-1.dll.
Quando eseguo il mio programma si blocca con
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
Ho cercato in questo sito (e altri) e ho provato una serie di correzioni:
Ho eseguito il walker delle dipendenze. DW ha fornito un paio di avvertimenti - che due librerie richieste da libsndfile, MPR.DLL e SHLWAPI.DLL, avevano "importazioni non risolte" - ma la FAQ DW ha detto che questi avvertimenti potevano essere tranquillamente ignorati.
Ho corretto i nomi dei metodi in mylib.dll, come suggerito qui . I nomi dei metodi erano stati in qualche modo alterati dal compilatore, ma ho aggiunto i flag del linker ei nomi dei metodi dll ora corrispondono esattamente a quelli nel mio file di intestazione jni.
Metto tutte queste DLL nella stessa directory, la stessa directory del .jar che le chiama, per assicurarmi che siano sul PERCORSO corretto.
Niente da fare.
Qualcuno ha idea di cosa stia succedendo?
Sto sviluppando in Visual Studio 2010 su un MacBook pro (tramite Parallels). Sto eseguendo i test in Windows XP su un laptop toshiba.