4

我正在尝试从 java 运行 swi prolog
我正在使用 eclipse 并且我已将 jpl.jar 插入到项目中(属性->库->添加外部 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>

我错过了什么?

4

4 回答 4

2

我今天在 Debian 上遇到了这个问题,我的解决方案与 Felix Dobslaw 的类似。因为我在别处找不到它,所以我今天将发布我如何解决它。

我的 SWI-Prolog 和 JPL 是通过 apt-get 安装的。根据您的环境更改路径文件夹。

  • libswipl.so从复制/usr/libusr/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 选项)

于 2014-10-23T21:58:42.263 回答
1

应该有一个 jpl dll 左右,这取决于你的平台。您应该让它在 %PATH% 中的某个地方可以访问,或者使用-Djava.library.path=<path to jpl.dll>java 属性指定它的位置。

阅读有关JPL 安装的更多信息

于 2012-10-22T03:55:52.950 回答
1

我有同样的问题。这在 Ubuntu 上帮助了我:

1)将 jpl jar 的本机库位置指向您保存“libswipl.so”的文件夹(我通过项目的“Java 构建路径”设置执行此操作)。对我来说就是:

/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

于 2013-02-11T17:16:13.567 回答
0

Eclipse Neon 和自制软件的解决方案:

brew update
brew install swi-prolog --with-jpl

在设置为 VM-Arg 的 Eclipse 运行/调试配置中:

-Djava.library.path=/usr/local/Cellar/swi-prolog/7.4.2/libexec/lib/swipl-7.4.2/lib/x86_64-darwin16.6.0

实际路径可能会有所不同。

于 2017-06-20T11:46:41.917 回答