Chapter 8 Using the Java-ECLiPSe Interface
The Java-ECLiPSe Interface is a general-purpose tool for
interfacing ECLiPSe with Java, Sun's popular object-oriented
platform-independent programming language. It could be used for
example to write a Java graphical front-end to an ECLiPSe optimisation
program or to interface ECLiPSe with a commercial application
written in Java. This document assumes a moderate level of programming
in Java (e.g. how to use classes, packages, interfaces etc. and some
knowledge of the java.util, java.io and java.net
libraries) and a basic knowledge of how to interact with ECLiPSe
(e.g. how to execute a goal, nondeterminism, what lists are
etc.). There are also some diagrams in UML notation, but these are not
crucial to the reader's understanding.
Section 8.1 is intended to get you started
quickly by running the example program QuickTest.java. Section
8.2 gives a brief overview of the functionality
of the Java-ECLiPSe interface by taking a closer look at how QuickTest.java works. In the other sections of the document you will
learn how to write Java programs which can:
Throughout this document, <eclipse_dir> stands for the root
location of your ECLiPSe installation. Detailed javadoc-generated HTML descriptions of the API provided by the com.parctechnologies.eclipse package can be found at:
- Manipulate ECLiPSe terms and other data in Java (Section
- Execute goals in ECLiPSe and use the results of this
computation in Java (Section 8.4).
- Transfer data between Java and ECLiPSe using queues.
- Initialise and terminate different kinds of connections between ECLiPSe and Java. (Section 8.7).
You may wish to browse the API documentation after reading this
document to obtain more detailed descriptions of classes and
interfaces in the package.
- Note that this invocation occurs only if the ECLiPSe side of the queue is empty. If you have written data to the queue on the Java side, but not flushed it, the ECLiPSe side may still be empty, in which case the dataRequest method of the listener will be invoked.