最近做項目用到了百度人臉識別離線SDK(Java),官網下載SDK包後直接導入到Eclipse是一個Java項目。後再集成進SpringBoot後發現好多問題,最爲嚴重的一個就是Can't find dependent libraries。
解決方案:
1、將原SDK包下的所有.dll文件及一些文件(這裏沒有去較真哪個有用哪個沒用),如下圖,複製到jdk的安裝路徑下的bin目錄下,我的java安裝路徑:D:\Program Files\Java\jdk1.8.0_171\bin;這裏說一下,如果是需要jdk開發用,需要將下列文件複製到jdk下的bin目錄裏,如果是運行用,那麼就將下列文件複製到jre下的bin目錄裏(如果怕錯的話可以都複製)
2、修改原SDK下的靜態塊代碼:
static {
// 加載dll
System.loadLibrary("MSVCP140");
System.loadLibrary("VCRUNTIME140");
System.loadLibrary("opencv_world320");
System.loadLibrary("OpenNI2");
System.loadLibrary("LIBEAY32");
System.loadLibrary("SSLEAY32");
System.loadLibrary("libcurl");
System.loadLibrary("libwinpthread-1");
System.loadLibrary("libgcc_s_seh-1");
System.loadLibrary("libquadmath-0");
System.loadLibrary("libgfortran-4");
System.loadLibrary("libgomp-1");
System.loadLibrary("libopenblas");
System.loadLibrary("orbe_camera");
System.loadLibrary("orbe_deeyea");
System.loadLibrary("facesdk");
System.loadLibrary("opencv_world320");
System.loadLibrary("ImiNect");
System.loadLibrary("ImiCamera");
System.loadLibrary("hjimi_camera");
System.loadLibrary("BaiduFaceApi");
System.loadLibrary("./opencv-dll/opencv_java320");
}
這時,再運行就沒有問題了。需要補充一下就是項目裏可以不再需要.dll那些文件了,可以移除,這樣代碼看上去更簡潔明瞭。