[英]Passing SWI-Prolog Query from Java Program
我在查詢變量中有一個由Java程序生成的查詢。 我想將其發送到SWI-Prolog以獲得解決方案。 下面顯示了我用Java編寫的用於與SWI-Prolog通信的子代碼。
Process P= new ProcessBuilder("C:\\Program Files\\swipl\\bin\\swipl-win.exe").start();
BufferedReader processOutput = new BufferedReader(new InputStreamReader(P.getInputStream()));
BufferedWriter processInput = new BufferedWriter(new OutputStreamWriter(P.getOutputStream()));
String commandToSend = Query;
processInput.write(commandToSend);
但是SWI-Prolog窗口打開,但是我正在寫給ProcessInput的命令沒有發送到SWI-Prolog。 可以向我建議最好的方法嗎? 我還需要文件中SWI-Prolog的查詢執行的輸出。
將查詢保存到外部文本文件, swipl
從命令行(已設置適當的選項)執行swipl
,然后將輸出重定向到另一個文本文件。 然后,讀取該輸出文件。
例:
:- query.
swipl -s QUERY.TXT -g halt --quiet > OUTPUT.TXT
另外,我懷疑您應該結合使用Runtime.getRuntime().exec(...)
和waitFor(...)
來等待swipl生成輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.