在使用 OS X 操作系统时,尝试使用 JPL 和 YAP Prolog 时会抛出异常。

17

我正在尝试使用JPL来实现Java程序与YAP Prolog之间的交互。

在我的Java文件中,以下这行代码抛出了异常:

Query query = new Query("consult", new Term[] { new Atom("test.pl") });

下面是异常信息:

Exception in thread "main" jpl.JPLException: this Query's engine is not that which is attached to this thread
at jpl.Query.close(Query.java:511)
at jpl.Util.textToTerm(Util.java:165)
at jpl.Query.Query1(Query.java:183)
at jpl.Query.<init>(Query.java:176)
at Test.main(Test.java:12)

虽然我没有在YAP中找到有人报告相同的问题,但有些人在SWI上遇到了这个问题,并被建议验证SWI是否编译了多线程支持。 以防万一,我已经编译了支持多线程的YAP,但没有帮助。

这个问题只发生在OS X上,在Ubuntu上尝试一切正常。

有人知道如何解决OS X上的这个问题吗?

2个回答

2

更新Yap到6.2.2版本后,JPL可以正常工作。不过我不能完全确定问题是否与之前使用的Yap版本(6.2.0)有关,或者是与其他什么东西有关。


0

嗨。是的,我看到有些人将这个问题与逻辑引擎不支持多线程相关联。然而,添加多线程支持并没有帮助(正如我在问题中所写的)。无论如何,我很高兴问题已经解决,如果我找到为什么会发生的线索,我会在这里更新它。现在我认为可能只是与我使用的Yap版本中的一个错误相关,但我不是很确定。 - Sergio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接