java - Jpostal Expander 和 Parser 不在 java.library.path Jni 中
问题描述
我正在尝试执行 openvenues-jpostal 包,但我遇到了这个错误(经过大量工作来构建和编译来自 libpostal 的所有内容!!)。我所做的是:
安装 libpostal
构建 jpostal (./gradlew assemble) -> 这给了我 jpostal.jar
将 jpostal.jar 复制到我的项目中的 lib -> 这让我将 com.mapzen.jpostal.AddressExpander 导入到我的项目的一个类中
还从 src/main/jniLibs 获得了 .so 文件。我将 jniLibs 文件复制到我的项目根目录中,如图所示。
当我尝试执行其中一个示例(解析器和扩展器)时,结果如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpostal_expander in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at com.mapzen.jpostal.AddressExpander.<clinit>(AddressExpander.java:7)
AddressExpander.java 类在 AddressExpander.java 下面给出
我的java类在下面给出
import java.io.IOException;
import com.mapzen.jpostal.AddressParser;
import com.mapzen.jpostal.ParsedComponent;
public class MyAddressParser {
public static void main(String[] args) throws IOException {
System.setProperty("java.library.path", "/jniLibs");
AddressParser p = AddressParser.getInstance();
ParsedComponent[] components = p.parseAddress(
"The Book Club 100-106 Leonard St, Shoreditch, London, Greater London, EC2A 4RH, United Kingdom");
for (ParsedComponent c : components) {
System.out.printf("%s: %s\n", c.getLabel(), c.getValue());
}
}
}
任何帮助。我在 Windows 上工作,但我需要在 Linux 中部署