Tcl/Java FAQ
Which JDK versions are supported?
JDK versions 1.1, 1.2, 1.3, and 1.4 are known to work well
with both Jacl and Tcl Blend. JDK 1.5 seems to work fine
but more testing is needed before it can be considered stable.
Some JDK implementations contain bugs that effect either
Tcl Blend or Jacl.
Which Tcl versions are supported?
Tcl Blend works with Tcl 8.3 and Tcl 8.4. Tcl 8.4.2
or newer is required when building from source under Windows.
Jacl is its own implementaiton of Tcl, so it does
not depend on or interact with the C version of Tcl
at all.
Where can I get help if I run into problems?
Don't panic! Help is just a couple of clicks away.
There is a Tcl/Java users mailing list dedicated
to helping end users with any problems they might
encounter. A searchable archive of posts to the
mailing list is available, so you can take a look
at questions other users have posted. Before you
can post your own questions, you will have to
subscribe to the mailing list. One is required
to subscribe before posting in order to keep
spammers from abusing the list. It is easy to
subscribe, unsubscribe, and view the archive
at the Mailing-Lists page.
Is Tk implemented in Jacl?
Jacl is an implementation of Tcl, not Tk.
The
Swank project
is a set of Java classes that wrap Java's swing widgets into
Tk commands. Swank is very pre-alpha, and we need
developers to jump in and help out.
How do I create an array of Java objects?
An array object is created with the java::new command.
To create an int[5] array with
values 11 through 15, you would enter:
set arrayObj [java::new {int[]} 5 {11 12 99 14 15}]
$arrayObj set 2 13
Note that in the above example the array type is passed
with brackets around it. This is required because the
square brace syntax is used to indicate a command substitution
in Tcl, so passing int[] instead of {int[]}
generates an error because Tcl interprets [] as the empty
string and passes the string int to the java::new command.
How are 64 bit values handled?
Jacl does not support 64 bit values in Tcl scripts. Tcl 8.4
does support 64 bit values in regular Tcl commands in some
configurations. Both Jacl and Tcl Blend support passing 64
bit values to Java methods that expect a long
or java.lang.Long type. If a 64 bit value is
returned by a Java method, it will be treated as a string.
Does Tcl Blend work with green threads on Solaris or Linux?
No, Tcl Blend requires a native threads JVM. Initially we
intended to make Tcl Blend work with a green threads JVM,
but there are just too many problems to justify supporting
this configuration.
Is Tcl Blend stubs enabled?
No, Tcl's stubs mechanism does not work with Tcl Blend. As
of version 1.3, Tcl Blend supports loading of both Tcl Blend
and Tcl into an existing JVM. To implement this feature,
the Tcl Blend shared library needs to know the specific
version of Tcl it was compiled with. Tcl's stubs mechanism
is designed to support loading an extension into multiple
versions of Tcl without the need for a recompile.
Does Jacl or Tcl Blend work inside a web browser?
No. Running Jacl inside a web browser or Tcl Blend inside
the Tcl plugin is not supported. There are far too many
issues related to security and flaky Java implementations
inside browsers to make this feasible. For example, both
the Netscape and IE implementations of Java disallow
introspection of Java classes, so commands in the java
package would not work. It is just not worth the trouble
of trying to support running things in a web browser.
Is there a Mac port?
No, there has historically been little or no interest
expressed in running Jacl or Tcl Blend on the Mac. Some
user have reported that Jacl works just fine on MacOSX.
|