原文链接:Z3 Java API fails to detect libz3.dylib
网上找了很多mac的解决方案都是要设置DYLD_LIBRARY_PATH或者java.library.path,但是都没用,在GitHub上找到的答案:
原因:
Java是受SIP保护的可执行文件,它会忽略用户设置 DYLD_LIBRARY_PATH
Proof by running: /bin/ls -lO $(which java)
libz3.dylib 不在操作系统OS X的标准位置之一 : not in ~/lib, /usr/local/lib, /usr/lib
所以快速解决方案是移动或链接 libz3.dylib 到 ~/lib.
put JNI dynamic link libraries in: /Library/Java/Extensions
e.g.libz3java.dylib
put none-JNI dynamic link libraries in: /usr/local/lib
e.g. libz3.dylib
即:将libz3java.dylib放到 /Library/Java/Extensions中,libz3.dylib放到/usr/local/lib中