JarClassLoader配合maven把所有依赖打包在一起,还是很方便的。不过在mac下发现无法加载native library。
通过跟踪JarClassLoader运行,发现主要原因是:System.mapLibraryName returns suffix ‘dylib’ and not ‘jnilib’ using JDK 7/8 on OS X
解决:
1)复制一份.dylib,or
2)判断下把.dylib的后缀改为.jnilib
1 2 3 4 5 6 7 |
private JarEntryInfo findJarNativeEntry(String sLib) { String sName = System.mapLibraryName(sLib); //bianbian if (sName.endsWith(".dylib")) { sName = sName.replaceFirst("\\.dylib", ".jnilib"); } ... |