Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_prolog_java:interprolog [2008/03/31 00:16] miw utworzono |
pl:miw:miw08_prolog_java:interprolog [2019/06/27 15:50] (aktualna) |
| ==== 1. Faza implementacji - uwagi, problemy. ==== |
| <code java> |
import com.declarativa.interprolog.* ; | import com.declarativa.interprolog.* ; |
import com.declarativa.interprolog.util.* ; | import com.declarativa.interprolog.util.* ; |
} | } |
| |
| </code> |
______________________________________________________________ | |
| |
Pojawia się podczas uruchomienia następujący błąd: | Pojawia się podczas uruchomienia następujący błąd: |
| |
| <code java> |
Exception in thread "main" com.declarativa.interprolog.util.IPException: Could not launch Prolog executable:java.io.IOException: CreateProcess: null\plcon error=2 | Exception in thread "main" com.declarativa.interprolog.util.IPException: Could not launch Prolog executable:java.io.IOException: CreateProcess: null\plcon error=2 |
at com.declarativa.interprolog.SubprocessEngine.<init>(SubprocessEngine.java:171) | at com.declarativa.interprolog.SubprocessEngine.<init>(SubprocessEngine.java:171) |
at com.declarativa.interprolog.SWISubprocessEngine.<init>(SWISubprocessEngine.java:29) | at com.declarativa.interprolog.SWISubprocessEngine.<init>(SWISubprocessEngine.java:29) |
at HelloWorld.main(HelloWorld.java:8) | at HelloWorld.main(HelloWorld.java:8) |
| </code> |
| |
| Strony przydatne przy pojawieniu się tego typu problemów: |
| [[http://www.nabble.com/Re:-interprolog-%2B-windows-(solved)-(fwd)-td15907118.html]] |
| |
| Korzystając z XSB |
| <code java> |
| Exception in thread "main" com.declarativa.interprolog.util.IPException: Could not launch Prolog executable:java.io.IOException: CreateProcess: null\xsb error=2 |
| at com.declarativa.interprolog.SubprocessEngine.<init>(SubprocessEngine.java:171) |
| at com.declarativa.interprolog.SubprocessEngine.<init>(SubprocessEngine.java:176) |
| at com.declarativa.interprolog.SubprocessEngine.<init>(SubprocessEngine.java:184) |
| at com.declarativa.interprolog.SubprocessEngine.<init>(SubprocessEngine.java:188) |
| at com.declarativa.interprolog.XSBSubprocessEngine.<init>(XSBSubprocessEngine.java:33) |
| at HelloWorld.main(HelloWorld.java:6) |
| |
| </code> |
| |
| Okazało się, że bez podania w konstruktorze SWIPrologEngine dokładnej ścieżki do pliku uruchomieniowego prologu. |
| |
| <code java> |
| import com.declarativa.interprolog.* ; |
| import com.declarativa.interprolog.util.* ; |
| import com.declarativa.interprolog.swi.* ; |
| |
| public class HelloWorld { |
| |
| public static void main(String [] args) { |
| PrologEngine engine = new SWISubprocessEngine("C:\\Programme\\pl\\bin\\plcon.exe") ; |
| boolean test = false ; |
| test = engine.deterministicGoal("listing") ; |
| System.out.println("Rezultat: " + test) ; |
| } |
| } |
| |
| </code> |
| Okazuje się również, że nie należy podawać kropki na końcu wywołanego polecenia prologowego. |
| |
| ==== 2. Implementacja systemu eksperckiego. ==== |
| |
| <code java> |
| import com.declarativa.interprolog.* ; |
| import com.declarativa.interprolog.gui.SWISubprocessEngineWindow; |
| |
| public class CarInterProlog { |
| |
| public static void main(String [] args) { |
| SWISubprocessEngine engine = new SWISubprocessEngine("C:\\Programme\\pl\\bin\\plcon.exe") ; |
| SWISubprocessEngineWindow window = new SWISubprocessEngineWindow(engine) ; |
| |
| engine.deterministicGoal("[car]") ; |
| engine.deterministicGoal("start") ; |
| } |
| } |
| </code> |
| |
| |
| |
| |
| |
| ==== 3. Instrukcja uruchomienia systemu eksperckiego. ==== |
| |
| Opis uruchomienia kodu (z rozdziału 2): |
| - Powyższy kod należy skopiować np. do notatnika i zapisać go pod nazwą **CarInterProlog.java** oraz należy zmienić ścieżkę (w kodzie) do pliku uruchomieniowego prologu w konstruktorze SWISubprocessEngine() na ścieżkę na danej maszynie, jeżeli jest inna (czyli należy zmienić napis **C:\\Programme\\pl\\bin\\plcon.exe**). |
| - Do tego samego katalogu w którym zapisaliśmy powyższy plik należy zapisać plik **car.pl** oraz **getyesno.pl** (pliki można poprać [[pl:prolog:prolog_lab:prolog_lab_2#cwiczenieprosty_system_ekspertowy|tutaj]]). |
| - Należy na konsoli wejść do katalogu, gdzie znajdują się pliki z naszymi programami. |
| - Należy wywołać następujące polecenie (w konsoli): **javac -cp INTERPROLOG_HOME\interprolog.jar CarJPL.java**, gdzie INTERPROLOG jest katalogiem, w którym znajduje się InterProlog (czyli np. C:\Programy\interprolog212). |
| - Powyższy kod jest skompilowany i gotowy do uruchomienia. Aby go uruchomić należy w konsoli wywołać następujące polecenie: **java -cp INTERPROLOG_HOME\interprolog.jar;"." CarInterProlog**, gdzie INTERPROLOG jest katalogiem, w którym znajduje się InterProlog (czyli np. C:\Programy\interprolog212). |
| |