2011-07-14 12 views
17

JavaプログラムとYAP Prologの対話にJPLを使用しようとしています。私はYAPで同じ問題を報告して誰かを見つけることができませんでしたがOS XでJPLとYAP Prologを使用しようとすると例外がスローされる

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) 

:例外は以下の通りです

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

:私のjavaファイルで

は、この行は、例外がスローされますSWIでこの問題を抱えていた人もいましたし、SWIがマルチスレッド対応でコンパイルされていることを確認することをお勧めしました。ちょうど私がマルチスレッドをサポートするようにYAPをコンパイルした場合でも、それは助けにはなりませんでした。

この問題はOS Xでのみ発生しています。私はUbuntuで試してみましたが、すべてうまくいきます。

誰かがOS Xでこの問題の回避策を知っていますか?

+0

OS Xのどのバージョン? – trashgod

+0

どのJVMを使用していますか? – micfra

答えて

2

ヤップはJPLが正しく動作している6.2.2にアップデートした後。残念ながら、問題が実際に私が使用していた以前のYapバージョン(6.2.0)にリンクしていたこと、または何か他のものに関連していたことを完全に確かめることはできません。

0

swi-prologでスレッドをサポートするために特別なuse-flagを設定する必要があるようです。詳細はこちら

ルック:

http://comments.gmane.org/gmane.comp.ai.prolog.swi/5335

+0

こんにちは。はい、私は、一部の人がこの問題をロジックエンジンに関連させ、マルチスレッドをサポートしていないことを知りました。しかし、マルチスレッドサポートを追加しても問題は解決しませんでした。とにかく、私は問題が解決したことを嬉しく思っています。もし私がなぜそれが発生したのかを知ると、ここでそれを更新します。今は私が使用していたバージョンのバグに関係していたかもしれないと思っていますが、私は本当にわかりません。 – Sergio

関連する問題