Tcl logo



The Tcl/Java Project

Latest Tcl/Java News

April 4, 2008:  New Tcl/Java 1.4.1 release!
This release is considered stable and ready for evaluation in a production environment. Developers deploying in a production environment should still favor the 1.3.3 release.
  • Fixed bug in Jacl's log10() expr function.
  • Fixed buggy CR handling in Jacl's subst command.
  • Fixed bug in classloader related to cached env(TCL_CLASSPATH) paths.
August 21, 2006:  Tcl/Java 1.4.0 release!
  • New TJC compiler for Jacl
  • Itcl port for Jacl
  • New java::for command
  • Class loading improvements
August 8, 2006:  Tcl/Java 1.3.3 release!
This release is considered stable and is ready for use in production environments.
  • Fix exec deadlock in Jacl
  • Fix default --prefix option
  • Fix lsort -dictionary sort order
  • Tcl Blend works with Tcl 8.4.13
July 28, 2005:  Tcl/Java 1.3.2 release!
  • Tcl Blend works with Tcl 8.4.11
  • New Win32 BAT startup scripts
  • Fixes a bunch of minor bugs
August 7, 2003:  Tcl/Java 1.3.1 release!
  • Tcl Blend works with Tcl 8.4.4
  • Lots of bug fixes
March 17, 2003:  Tcl/Java 1.3.0 release!
  • Includes lots of bug fixes
  • Includes many new features
  • New project website

What is Tcl/Java?

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.

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. Jacl is the ideal solution for users that want to add Tcl scripting to a Java application, but don't want to deal with the complexities of native code that come with 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.

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.