[英]connect between java and swi prolog
我试图从java运行swi prolog
我正在使用eclipse,我已经将jpl.jar插入到项目中(properties-> libraries-> add external jar),当我尝试运行程序时(它是jpl的一个示例,所以它应该工作..)我是收到错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jpl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
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 faf.Main.main(Main.java:10) <br>
我错过了什么?
我今天在Debian上遇到了这个问题,我的解决方案类似于Felix Dobslaw的。 因为我在其他地方找不到它,我会发布今天我如何解决它。
我的SWI-Prolog和JPL是通过apt-get安装的。 根据您的环境更改路径文件夹。
将libswipl.so从/usr/lib
复制到usr/lib/swi-prolog/lib/amd64
( sudo cp <probably-user-lib>/libswipl.so <installation-folder-swi>/lib/<architeture>
)
将-Djava.library.path="/usr/lib/swi-prolog/lib/amd64"
为VM选项
(项目属性 - >运行 - > VM选项)
根据您的平台,应该有一个jpl dll左右。 您应该使其可以在%PATH%中的某个位置访问,或者使用-Djava.library.path=<path to jpl.dll>
java属性指定其位置。
阅读有关JPL安装的更多信息
我有同样的问题。 这对Ubuntu有帮助:
1)将jpl jar的本机库位置指向您保存“libswipl.so”的文件夹(我通过项目的“Java Build Path”设置执行此操作)。 对我来说是:
/usr/lib/swipl-6.2.6/lib/x86_64-linux
2)将保存“libjava.so”的文件夹添加到LD_LIBRARY_PATH变量中(我在环境选项卡下的运行配置中执行此操作)。 对我来说是:
/ usr / lib中/ JVM / JAVA -6-的openjdk / JRE / LIB / AMD64
Eclipse Neon和自制软件的解决方案:
brew update
brew install swi-prolog --with-jpl
在Eclipse Run / Debug-Configuration中设置为VM-Arg:
-Djava.library.path=/usr/local/Cellar/swi-prolog/7.4.2/libexec/lib/swipl-7.4.2/lib/x86_64-darwin16.6.0
实际路径可能有所不同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.