Java プログラムと YAP Prolog の相互作用に JPL を使用しようとしています。
私の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 でのこの問題の回避策を知っている人はいますか?