1. 程式人生 > >mac系統下使用sapjco導致maven中依賴的jar包無法引入

mac系統下使用sapjco導致maven中依賴的jar包無法引入

昨天,由於工作需要,需要去接觸另一個專案,這個專案在我剛來公司的時候做過一個小的功能,之後就沒有再接觸過,就在昨天需要重新搞一個東西出來,但是發現專案執行不起來,jar包都引入不了,經過一番摸索也是毫無頭腦,只知道問題表現形式,但是找不到問題的原因。

問了下同事,同事竟然也出現過這樣的問題,跟我說了下問題可能出現的原因,又一起開始搞,功夫不負有心人,終於搞出來了,特在此分享下!

【一個人要不斷努力沒錯,但是適時也要虛心請教別人,會讓自己少走許多彎路】

問題描述:

OS X EI Capitan  版本10.11.3

這是當前我係統最新版本,在此版本前有可能使用sap不會出現問題,當升級到當前版本的系統的時候

1、會導致maven中pom檔案裡所有的jar包都無法引入

2、並伴隨著會出現sap下CpicDriver找不到。

問題原因:

低版本的mac在/usr/lib下面會自動加入呼叫rfc介面的jar依賴,由於mac系統升級導致安全性變得更強,使得mac本身不具備此項功能

解決方案:

步驟1:

首先需要下載sapjco(附件如下),下載完成之後需要把解壓後的檔案中libsapjco3.jnilib檔案加入/usr/lib下

那麼問題來了:(會提示你沒有許可權Operation not permitted)

我們需要進入root許可權,copy,如果還是提示沒有許可權,就是因為 El Capitan 加入了

Rootless機制,不能夠用root許可權隨意讀寫了(Rootless機制將成為對抗惡意程式的最後防線)

此時我們需要重啟電腦,在啟動的時候摁住command+R,會進入恢復模式,點選選單欄裡面的終端,輸入如下命令csrutil  disable命令去關閉Rootless,重新啟動即可。(如果想恢復,同樣的方式輸入csrutil  enable命令

詳細csrutil請見http://www.jianshu.com/p/22b89f19afd6

啟動完成之後重新執行cp命令,複製成功

步驟2:

配置環境變數,在配置檔案中新增

#sapjco

export DYLD_LIBRARY_PATH=/usr/lib

步驟3:

重新maven  install會發現所有的jar都已經引入

如果步驟3執行後,還是無法引入jar包,建議先把pom檔案中sap相關包配置刪除掉,重新引入其他包。

PS:

如果maven專案中還是無法引入sap相關的jar包是,最後就只能在Dependencies中手動將解壓出來的sapjco3.jar新增到依賴中

至此:問題解決!