注:主要是dll文件的配置
A:Java SDK 使用了 JNI 形式,在初始化 SDK 時,SDK 將加載共享庫(Windows下為msc32.dll或msc64.dll文件,Linux下libmsc32.so或libmsc64.so文件),報錯是因為系統找不到共享庫。
一般來說,在 Windows 下,系統加載共享庫時的優先級將按以下的順序:
1,應用的當前運行目錄;
2,由系統環境參數 Path 指定的目錄;
3,System32 目錄;(已實現可行)
而在Linux下,系統加載共享庫時的優先級將按以下順序:
1,LD_LIBRARY_PATH指定的目錄;
2,/usr/lib/ 或 /lib64/ 目錄;(實現可行,但是放置后執行ldd再執行ldconfig命令)
根據上面:
在Windows下,把 dll 文件,放在應用的當前運行目錄(一般為應用所在的目錄),或在 Path 把 dll 所在目錄加入此環境參數中,或者把dll復制到 System32 目錄(不建議);
在Linux下,則把 .so 所在目錄,通過 export 加入
LD_LIBRARY_PATH
中(在Terminal或在“.bashrc”等啟動時會加載的腳本中),或把 .so 文件復制到 lib 文件夾中(不建議);(另外,確保linux的glibc版本為2.11以上;可以執行命令 ldd libmsc32.so <如64位系統,則命令為 ldd libmsc64.so>,如果有執行結果有`GLIBC_2.11' not found,則需要把 glibc 版本升級到2.11版)
◆
一般來說,web項目的當前運行目錄,並不項目的根目錄,而是由tomcat等 server 指定的目錄。所以具體當前運行目錄應視 server 而定——即使在 windows 下,也不能把dll文件簡單的放在項目根目錄下就完事。同時,根據 server 把庫文件配置好后,應重啟 WebServer 才會生效。
另外,在 Linux 下 eclipse 調試時,可能通過Terminal 來 export
LD_LIBRARY_PATH
並不起作用,此時,因為運行的調試環境不在 Terminal 中,需要在項目屬性中,設置調試和運行的環境參數,在其中,增加
LD_LIBRARY_PATH
,並指定 so 文件所在的目錄,如下圖為指定 so 所在目錄為當前運行的目錄: