java - 尝试在 OS X 中使用 JPL 和 YAP Prolog 时抛出异常

标签 java prolog jpl yap

我正在尝试将 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 中这个问题的解决方法吗?

最佳答案

将 Yap 更新到 6.2.2 后,JPL 工作正常。不幸的是,我不能完全确定这个问题确实与我使用的以前的 Yap 版本 (6.2.0) 有关,或者它与其他问题有关。

关于java - 尝试在 OS X 中使用 JPL 和 YAP Prolog 时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694092/

相关文章:

java - 无法在 Java 中重定向标准输出

java - 在 Eclipse 插件中显示第三方 JNI 库的控制台输出

java - 数组中空指针异常的Java错误处理

在 bin\javaw.exe 中找不到 Java 运行时环境

list - 在 Prolog 中删除重复项并保持顺序

recursion - Prolog用另一个列表的元素递归替换列表的元素

java - Apache POI Excel 公式输入不属于它们的@符号

java - 启动服务并引用对象

prolog - 通过对具有相同索引的元素求和来组合两个列表不起作用

java - jpl.PrologException : existence_error