我在安装 jpl 库时遇到问题。我安装了最新的 swipl 版本(但之前也尝试过不稳定版本):

SWI-Prolog 7.2.3 for Windows 7/8/10 64-bit edition

然后,我将依赖路径添加到环境变量:
Variable: SWI_HOME_DIR
Value: C:\Program Files\swipl

然后我在Path中添加了这些值:
%SWI_HOME_DIR%\lib\jpl.jar;
%SWI_HOME_DIR%\lib;
%SWI_HOME_DIR%\bin

我还添加了VM参数,如下所示:
-Djava.library.path="C:\Program Files\swipl\bin"

确保Eclipse可以看到该文件夹​​。

之后,我仍然收到错误:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Program Files\swipl\bin\jpl.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1855)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at org.jpl7.JPL.loadNativeLibrary(JPL.java:79)
    at org.jpl7.fli.Prolog.<clinit>(Prolog.java:41)
    at org.jpl7.Query.open(Query.java:260)
    at org.jpl7.Util.textToTerm(Util.java:102)
    at org.jpl7.Query.Query1(Query.java:129)
    at org.jpl7.Query.<init>(Query.java:120)

我100%确信Eclipse可以看到jpl.dll文件,但是在我看来,它似乎还需要其他一些库。

我知道该线程可能是以下任何一个的重复:

jpl.dll: Can't find dependent libraries
JPL Can't find dependent libraries of jpl.dll

但是这些问题没有得到解答,或者对于我而言,这些回答无济于事。

最佳答案



这是安装说明:

将三个库文件(jpl.dlljpl.jarjpl.pl)放在可以找到的位置:

  • jpl.dll必须由 Windows内核找到,并且可以在任何
    PATH环境变量上的文件夹;
    也许%SWI_HOME_DIR%\bin或Windows系统文件夹
  • jpl.jar必须由使用的任何 Java VM (和编译器)找到
    JPL 一起使用。一种可能是将其放在全局 CLASSPATH 上。
  • jpl.pl Prolog 源模块,任何人都必须找到
    JPL 所使用的 SWI-Prolog 引擎:
    我建议将其放入%SWI_HOME_DIR%\library中,然后调用
    该文件夹上的make_library_index/1(请参见 SWI-Prolog 手册
    有关详细信息),以便自动装带器可以找到它。
  • 10-05 23:05