Troubleshooting UnsatisfiedLinkError in JNI Projects
When encountering the "UnsatisfiedLinkError: Can't find dependent libraries" issue in a JNI project, it's crucial to address the problematic relationship between the native library and its dependent libraries.
In your case, mylib.dll depends on libsndfile-1.dll, which in turn requires MPR.DLL and SHLWAPI.DLL. Dependency Walker's warnings about unresolved imports for MPR.DLL and SHLWAPI.DLL can be ignored, as stated.
To resolve this issue, ensure that all dependent DLLs are present and accessible in the same directory as mylib.dll or along the Windows PATH environment variable.
Moreover, the system property java.library.path is not directly responsible for locating the DLLs. In Windows, if java.library.path is not used, the DLL must be in the current working directory or in a PATH directory.
To verify, run "java -XshowSettings:properties -version" and examine the java.library.path property for the shared library search path.
Remember, the dependent libraries must be present and accessible; their relative locations to the native library should adhere to the mentioned guidelines.
The above is the detailed content of How to Resolve 'UnsatisfiedLinkError: Can't find dependent libraries' in JNI Projects?. For more information, please follow other related articles on the PHP Chinese website!