如何在Mac OS X中连接JPL与SWI-Prolog [英] How to connect JPL with SWI-Prolog in Mac OS X

查看:198
本文介绍了如何在Mac OS X中连接JPL与SWI-Prolog的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好我有一个jpl接口的问题。我想连接JPL与安装mac-ports与eclipse的swi-prolog。我有一个jpl.jar,我已经尝试导入jar文件在eclipse与构建路径,但我有这个错误:no jpl在java.library.path。
所以我已经将libjpl.dylib复制到/opt/local/lib/swipl-7.1.29/bin/中,当我执行代码时,我有这个错误:线程中的异常mainjava.lang。 notatisfiedLinkError:/opt/local/lib/swipl-7.1.29/bin/libjpl.dylib:dlopen(/opt/local/lib/swipl-7.1.29/bin/libjpl.dylib,1):库未加载:/用户/ janw / stable / lib / swipl / lib / x86_64-darwin13.0.0 / libswipl.dylib
引用自:/opt/local/lib/swipl-7.1.29/bin/libjpl.dylib
原因:图像未找到

解决方案

经过一段时间的浪费,我找到了解决方案。
首先,它完全需要通过macports安装swi-prolog,如果没有,就像我一样,当你指向



Djava.library.path = / users / rivax / Applications / SWI-Prolog.app / Contents / swipl / lib / x86_64-darwin13.0.0



这个异常将在



线程main中的异常java.lang.UnsatisfiedLinkError:/ Users / rivax / Applications / SWI- Prolog.app/Contents/swipl/lib/x86_64-darwin13.0.0/libjpl.dylib:dlopen(/Users/rivax/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin13.0.0/libjpl.dylib ,1):库未加载:/Users/janw/stable/lib/swipl/lib/x86_64-darwin13.0.0/libswipl.dylib
引用自:/Users/rivax/Applications/SWI-Prolog.app/内容/ swipl / lib / x86_64-darwin13.0.0 / libjpl.dylib
原因:image not found
在java.lang.ClassLoader $ NativeLibrary.load(Native Method)
在java.lang .ClassLoader.loadLibrary1(ClassLoader.java:1965)
在java.lang.ClassLoader.loadLibrary0(Cl assLoader.java:1890)
在java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
在java.lang.Runtime.loadLibrary0(Runtime.java:849)
在java .lang.System.loadLibrary(System.java:1088)
at jpl.JPL.loadNativeLibrary(JPL.java:100)
at jpl.fli.Prolog。< clinit>(Prolog.java: 85)
at jpl.Query.open(Query.java:286)
at jpl.Util.textToTerm(Util.java:162)
at jpl.Query。< init>( Query.java:198)
在consultasProlog.Consultas.consultaFicheroProlog(Consultas.java:19)
在utilidades.RellenarModelo.ejecutarArchivo(RellenarModelo.java:30)
在javaprolog.JavaProlog.main (JavaProlog.java:30)
Java结果:1



所以按照这些步骤。


  1. 在终端上安装swi-prolog,如果你没有安装已经有macports命令没有找到,那么请去 https://www.macports.org/install.php 和我nstall macports。

  2. 导航到我的
    /opt/local/lib/swipl-6.6.6/lib的swi prolog macports安装路径/x86_64-darwin14.0.0

  3. 复制此路径,并在Java VM中的java.library.path中设置为 -Djava.library .path = / opt / local / lib / swipl-6.6.6 / lib / x86_64-darwin14.0.0

现在.pl与jpl.jar将能够执行,咨询将运行。



希望它能帮助你和每个找到这个地狱问题的人。



坦白说。


Hi i have a problem with a jpl interface. I want connect JPL with swi-prolog installed with mac-ports with eclipse. I have a jpl.jar and i have tried to import the jar file in eclipse with build path but i have this error: "no jpl in java.library.path". So i have copied libjpl.dylib in a /opt/local/lib/swipl-7.1.29/bin/ and when i execute the code i have this error: "Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/local/lib/swipl-7.1.29/bin/libjpl.dylib: dlopen(/opt/local/lib/swipl-7.1.29/bin/libjpl.dylib, 1): Library not loaded: /Users/janw/stable/lib/swipl/lib/x86_64-darwin13.0.0/libswipl.dylib Referenced from: /opt/local/lib/swipl-7.1.29/bin/libjpl.dylib Reason: image not found"

解决方案

After a anoying waste of time i found the solution about that problem. First of all, its completely necesary to install swi-prolog via macports, if not, as i did, when you point in the

Djava.library.path=/users/rivax/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin13.0.0

this exception will apear

Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/rivax/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin13.0.0/libjpl.dylib: dlopen(/Users/rivax/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin13.0.0/libjpl.dylib, 1): Library not loaded: /Users/janw/stable/lib/swipl/lib/x86_64-darwin13.0.0/libswipl.dylib Referenced from: /Users/rivax/Applications/SWI-Prolog.app/Contents/swipl/lib/x86_64-darwin13.0.0/libjpl.dylib Reason: image not found at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880) at java.lang.Runtime.loadLibrary0(Runtime.java:849) at java.lang.System.loadLibrary(System.java:1088) at jpl.JPL.loadNativeLibrary(JPL.java:100) at jpl.fli.Prolog.<clinit>(Prolog.java:85) at jpl.Query.open(Query.java:286) at jpl.Util.textToTerm(Util.java:162) at jpl.Query.<init>(Query.java:198) at consultasProlog.Consultas.consultaFicheroProlog(Consultas.java:19) at utilidades.RellenarModelo.ejecutarArchivo(RellenarModelo.java:30) at javaprolog.JavaProlog.main(JavaProlog.java:30) Java Result: 1

So follow these steps.

  1. port install swi-prolog on terminal , if you dont have install already macports command not found will apear so go to https://www.macports.org/install.php and install macports.
  2. navigate to the path of swi prolog macports installation which mine is /opt/local/lib/swipl-6.6.6/lib/x86_64-darwin14.0.0
  3. copy this path and set in java.library.path in the java VM as -Djava.library.path=/opt/local/lib/swipl-6.6.6/lib/x86_64-darwin14.0.0

Now .pl with jpl.jar will be able to execute and the consults will run.

Hope it will help you and every person who find this hell problem.

Cheers frank.

这篇关于如何在Mac OS X中连接JPL与SWI-Prolog的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆