MIP Java SDK加载mip_java.dll失败:缺失依赖库求解决
在Java程序中使用MIP Java SDK wrapper进行文件标签读写操作时,已将SDK下载并把所有DLL复制到项目根目录,但运行时抛出异常:
Exception in thread "main" java.lang.RuntimeException: Can't load D:\eclipse_workspace\aip-service\mip_java.dll . Error was:D:\eclipse_workspace\aip-service\mip_java.dll: Can't find dependent libraries
at com.microsoft.informationprotection.internal.utils.Loader.load(Loader.java:27)
at com.microsoft.informationprotection.internal.utils.Loader.loadNativeLibs(Loader.java:14)
at com.microsoft.informationprotection.MIP.initialize(MIP.java:129)
at com.microsoft.mipsdksample.Action.<init>(Action.java:68)
at com.microsoft.mipsdksample.App.main(App.java:54)
使用Dependencies工具检测mip_java.dll的依赖,发现部分依赖库标记为红色无法获取,补充信息:
- 红色标记的DLL未包含在下载的MIP Java SDK wrapper中
- 操作系统为Windows 11
- 安装对应版本的Visual C++ Redistributable Packages:MIP SDK依赖微软VC运行库,红色缺失的DLL通常属于这类库。下载与你的JDK、SDK架构(x86/x64)匹配的VC Redist安装包并安装,之后重启项目。
- 确认SDK与系统架构匹配:Windows 11多为64位系统,需确保下载的是64位版本的MIP Java SDK wrapper,避免因架构不匹配导致依赖缺失。
- 调整DLL加载路径:除了项目根目录,可将所有SDK相关DLL放入Windows系统目录(64位系统放
C:\Windows\System32,32位放C:\Windows\SysWOW64);或者启动Java程序时通过参数指定库路径:java -Djava.library.path=./你的DLL存放目录 -jar 你的程序.jar。 - 检查SDK文件完整性:确认已将MIP SDK压缩包内的所有原生DLL(如
mip.dll等)与mip_java.dll放在同一目录,不要遗漏任何SDK附带的文件。
内容的提问来源于stack exchange,提问作者Ravi

