我在安装 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.dll
,jpl.jar
和jpl.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 手册有关详细信息),以便自动装带器可以找到它。