Как подключить Eclipse с JPL на OS X - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть проблема, которая не была решена где-либо еще.Я скачал libjpl.dylib и скопировал в

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

Вывод otool -L из libjpl.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/" добавляется к аргументам виртуальной машины в run configuration.В любом случае, когда я хочу его скомпилировать, у меня появляется ошибка:

Исключение в потоке "main" java.lang.UnsatisfiedLinkError:

jpl.fli.Prolog.thread_self () Я на jpl.fli.Prolog.thread_self (собственный метод) на 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();

}

}
...