错误
具体错误为: lzo.GPLNativeCodeLoader: Could not load native gpl library java.lang.UnsatisfiedLinkError: no gplcompression in java.library.path
测试
首先编辑一个java类,获取当前"java.library.path"这个路径所指向的位置。并查看是否已经包含了 lzo环境。
具体类代码如下:
import java.util.Properties;
import java.util.Set;
public class TestLD {
public static void main(String[] args) {
System.out.println(System.getProperty("java.library.path"));
Properties props = System.getProperties();
Set<Object> keys = props.keySet();
for (Object key : keys) {
if (((String) key).equals("java.library.path"))
System.out.println(System.getProperty("java.library.path"));
if (((String) key).equals("."))
System.out.println(System.getProperty("."));
}
try {
//loading gplcompression...
System.loadLibrary("gplcompression");
System.out.println("Load gplcompression success");
System.mapLibraryName("lzohadoop");
} catch (Throwable t) {
System.out.println("Error");
t.printStackTrace();
}
System.out.println(System.mapLibraryName("gplcompression"));
}
}
比如我的输出如下:
分别查看 这些路径下是否有 libgpl的文件,测试显示没有。
由于我之前安装过lzo,此时查找文件 包含libgplcompression的路径,然后将该路径下的这些文件都复制到 /usr/lib目录下。第一张图是 liggplcompression所涵盖的文件,第二张图是复制之后的效果。
再次执行 java代码查看,可得如下结果: