2012-03-17 73 views
2

我正在尝试使用SWI-Prolog JPL库,但我遇到了问题。JPL/SWI Prolog不工作

我试图让我的Eclipse项目访问喷气推进实验室,但是当我尝试启动该程序,我得到以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no jpl in java.library.path 

我复制了jpl.jar到我的项目目录,我将它设置在构建路径上。此外,我传递了以下VM参数:

-Djava.library.path="C:\Program Files\Prolog\bin" 

(这是Prolog的安装目录)。

我在做什么错?


编辑:我似乎没有libpl.dll在我的电脑上的任何地方。这可能会导致我的问题?

+0

“libjpl.dll” 应该是在“bin”目录 – 2012-04-02 13:21:03

+0

不是。 我认为这是问题所在。我将尝试找到一个老版本的Prolog,它有正确的JPL工作库。 – CodeBunny 2012-04-02 15:38:04

+0

对不起,我以Unix为中心。对于Windows,您需要的文件是“jpl.dll”。对于Unix,它是“libjpl.so”。在Windows上没有找到“libjpl.dll” – 2012-04-02 21:24:52

回答

3

您运行的JDK/JRE的jvm.dll必须在您的系统PATH中可用,以便从java.library.path正确加载jpl.dll

你必须注意你的JPL安装和你运行的JVM之间的32位/ 64位一致性 - 所以不要尝试任何混合。

这是从旧installation doc信息。

对于这种安装支持,您应该使用JPL邮件列表。

+0

JPl 3.x似乎是个好主意,有没有下载链接? – CodeBunny 2012-03-29 19:25:45

+0

链接中的重要信息是设置过程和要求,而不是版本本身。顺便说一句,该网页是真的过时了:2004年...你使用什么版本?它从何而来 ? JPL项目似乎没有了。 – 2012-03-30 07:38:56

+0

我安装了最新版本的Prolog。它包含jpl.jar和jpl.dll,但它不包含libpl.dll,所以我认为这是问题。 – CodeBunny 2012-03-30 12:27:26

1

您应该将java.library.path设置为jpl.dll文件所在的文件夹。据我所知这是Prolog\bin文件夹。

+0

进度!将输出更改为:线程“AWT-EventQueue-0”中的异常java.lang.UnsatisfiedLinkError:C:\ Program Files \ Prolog \ bin \ jpl.dll:无法找到相关库 – CodeBunny 2012-03-17 21:03:17

+0

尝试添加您的Prolog \ bin文件夹以及PATH环境变量。似乎java.library.path设置不适用于从dll文件加载的其他dll。 – 2012-03-18 19:20:46

+1

嗯。这并没有改变任何东西。 JPL需要运行什么库? – CodeBunny 2012-03-23 12:53:44

0

在Mac环境(SWI-Prolog的版本7.1.4 x86_64的-darwin13.1.0)的系统级解决方案是创建以下符号链接:

ln -s /usr/local/Cellar/swi-prolog/7.1.4/libexec/lib/swipl-7.1.4/lib/x86_64-darwin13.1.0/libjpl.jnilib /Library/Java/Extensions/libjpl.jnilib