如何在Mac OS X中连接JPL与SWI-Prolog [英] How to connect JPL with SWI-Prolog in Mac OS X
问题描述
所以我已经将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
所以按照这些步骤。
- 在终端上安装swi-prolog,如果你没有安装已经有macports命令没有找到,那么请去 https://www.macports.org/install.php 和我nstall macports。
- 导航到我的
/opt/local/lib/swipl-6.6.6/lib的swi prolog macports安装路径/x86_64-darwin14.0.0
- 复制此路径,并在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.
- 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.
- 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
- 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屋!