The Tcl/Java project's goal is to make integrating the Java platform and the
Tcl scripting language as easy as possible. The project actually consists of
two distinct packages, called Tcl Blend and Jacl. It is important to
understand what each package provides and in what situations one might choose
to use Jacl or Tcl Blend.
Tcl Blend is a Tcl extension that makes use of JNI to facilitate communication
between a Java interpreter and a Tcl interpreter. Tcl Blend is typically used
to load a Java interpreter into an existing Tcl process, so that functionality
implemented in Java can be accessed via Tcl. One can also load Tcl Blend and
Tcl into a Java process, which is a great way to add scripting functionality
to an existing Java application. Because Tcl Blend is a normal Tcl extension,
one can use it with other popular Tcl extensions like Tk, Expect, and Itcl.
Jacl is a self-contained implementation of a Tcl interpreter, written entirely
in Java. Jacl also includes features that facilitate communication between a
Java interpreter and a Tcl interpreter. Jacl is typically used to incorporate
scripting functionality into an existing Java application. For users who want
to avoid adding any native code to their Java applications, Jacl is the ideal
Tcl Blend and Jacl define both a Tcl API and a Java API that make it easy to
call Java code from Tcl or call Tcl code from Java. For example, one could
allocate a Java object in a Tcl script and interactively invoke Java methods
on the object. It is also easy to use the supplied API to evaluate a Tcl
procedure from a Java method or implement Tcl procudures in Java. The flexible
API and wealth of implementation options provided by the Tcl/Java project make
integrating Tcl and Java easy.