Das Java-Prolog-Interface JPL
Inbetriebnahme
Die Benutzung von
JPL ist leider wegen einiger Distributionsfehler etwas aufwendig (u.a. wegen Änderungen in aktuellen Java-Versionen). Das Zusammenspiel zwischen SWI-Prolog und Java kann nur funktionieren wenn alle notwendigen Dateien gefunden werden. Insbesondere betrifft dies die Bibliotheken
java.dll
und
jvm.dll
(bzw.
libjava.so
und
libjvm.so
), welche Teil Ihrer Java-Laufzeitumgebung sind, und natürlich der Rest der Laufzeitumgebung. Darüberhinaus muss der Classpath für die benutzten Java-Klassen gesetzt werden.
Prüfen Sie bitte zunächst, wo Ihre Java-Laufzeitumgebung installiert ist -- unter Windows (im IRZ) ist
C:\Programme\Java\jre8
und unter Ubuntu
/usr/lib/jvm/java-8-openjdk-amd64
jeweils ein guter Kandidat. Prüfen Sie dann, wo die angesprochenen Bibliotheken innerhalb dieser Verzeichnisse liegen. Unter Windows (im IRZ) liegt
java.dll
im Unterverzeichnis
bin
und
jvm.dll
im Unterverzeichnis
bin\server
, unter Linux in den Unterverzeichnissen
jre/lib/amd64/
bzw.
jre/lib/amd64/server/
.
- Unter Ubuntu (14.10, vermutlich ähnlich in anderen Linuxen und OS X):
- installieren Sie ggfs. das Paket swi-prolog-java (
apt-get install swi-prolog-java
)
- zusätzliche Pfade zu Bibliotheken werden unter Linux in der Umgebungsvariable
LD_LIBRARY_PATH
angegeben. Für die Pfade im obigen Beispiel führen Sie folgendes Kommando in der Konsole aus: export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server
. Beachten Sie den Doppelpunkt als Trennzeichen zwischen beiden Pfaden und passen Sie die Pfade ggfs. Ihren lokalen Gegebenheiten an.
- starten Sie in derselben Konsole Prolog mit dem Kommando
swipl
.
- Unter Windows (im IRZ):
- JPL ist bei der Windows-Distribution bereits installiert
- zusätzliche Pfade zu Bibliotheken werden unter Windows in der Umgebungsvariablen PATH angegeben; zusätzlich muss für Prolog noch die Variable WINEPATH gesetzt werden. Für die Pfade im obigen Beispiel führen Sie folgende Kommandos in der Konsole aus:
set PATH=%PATH%;C:\Programme\Java\jre8\bin;C:\Programme\Java\jre8\bin\server
und set WINEPATH=C:\Programme\Java\jre8\bin;C:\Programme\Java\jre8\bin\server
. Beachten Sie das Semikolon als Trennzeichen zwischen beiden Pfaden und passen Sie die Pfade ggfs. Ihren lokalen Gegebenheiten an.
- starten Sie in derselben Konsole Prolog, zum Beispiel mit dem Kommando
c:\programme\swipl\bin\swipl.exe
.
- prüfen Sie die Inbetriebnahme von JPL mit der Eingabe
use_module(library(jpl)).
Es sollten keine Warnungen erscheinen.
- prüfen SIe die Funktionsfähigkeit von JPL durch die Bindung eines (beliebigen Java-Objekts):
jpl_get('java.awt.Color', black, Black).
Es sollten keine Warnungen erscheinen (wohl aber eine Variablenbindung der Art Black = @('J#00000000000456276560').
).
- persistieren Sie ggfs. die Änderungen an den oben genannten Umgebungsvariablen, unter Linux zum Beispiel durch einen Eintrag in Ihrer
.profile
oder mit einem alias, unter Windows weiß-gott-wie.
Nutzung für die Weihnachtsaufgabe
- Kopieren Sie die Datei
grafik-java.pl
und das Java-Archiv ShapeDrawingFrame.jar
in Ihr Arbeitsverzeichnis.
- setzen Sie den Classpath ggfs. durch die Eingabe von
export CLASSPATH=ShapeDrawingFrame.jar
(bzw. set CLASSPATH=ShapeDrawingFrame.jar
unter Windows).
- starten Sie grafik-java.pl durch die Eingabe von
swipl -s grafik-java.pl
(sinngemäß unter Windows).
--
TimoBaumann - 02 Dec 2014