1

我遇到了其他任何地方都没有解决的问题。我已经下载libjpl.dylib并复制到

/usr/local/Cellar/swi-prolog/7.6.4/libexec/lib/swipl-7.6.4/lib/

的输出otool -Llibjpl.dylib我这个输出:libjpl.dylib:

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server/libjsig.dylib(兼容版本1.0.0,当前版本1.0.0)/Library/Java/JavaVirtualMachines/jdk1.8.0 _131.jdk/Contents/Home/jre/lib/server/libjvm.dylib(兼容版本1.0.0,当前版本1.0.0)/usr/local/Cellar/swi-prolog/7.6.4/libexec/lib/swipl -7.6.4/lib/x86_64-darwin17.3.0/libswipl.dylib(兼容版本0.0.0,当前版本7.7.19)/usr/lib/libSystem.B.dylib(兼容版本1.0.0,当前版本1252.50。 4)

并且所有路径都是正确的。路径libjpl.dylib添加到项目的构建路径中,Eclipse-Djava.library.path="/usr/local/Cellar/swi-prolog/7.6.4/libexec/lib/swipl-7.6.4/lib/"添加到 中的 VM 参数中run configuration。无论如何,当我想编译它时,我遇到了一个错误:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:

jpl.fli.Prolog.thread_self()I 在 jpl.fli.Prolog.thread_self(Native Method) 在 jpl.Query.open(Query.java:286) 在 jpl.Query.hasMoreSolutions(Query.java:256) 在 jpl .Query.oneSolution(Query.java:688) 在 jpl.Query.hasSolution(Query.java:759) 在 Pro.main(Pro.java:12)

我错过了什么?

编码:

import jpl.*;

public class Pro {

public static void main(String[] args) {
    ////it gives the same error even if System.load doesn't exist
    System.load("/usr/local/Cellar/swi-prolog/7.6.4/libexec/lib/swipl-7.6.4/lib/libjpl.dylib");
    Term goal = new Compound( "teacher_of", new Term[]{new Atom("aristotle"),new Atom("alexander")});
    Query q = new Query( goal );
    q.hasSolution();

}

}
4

0 回答 0