GJ

Home
Mirrors
Distribution
Documents
Applications
People
Related
FAQ

A Generic Java Language Extension

Installation and TroubleShooting


I can't seem to get the retrofitted java.util classes to work!

JDK 1.2 has a different classpath regime than JDK 1.1. Instead of a
single classpath, there is now a bootclasspath and a user classpath.
When loading classes, the compiler looks up the bootclasspath first,
then, if the class was not found there, the user classpath. The
bootclasspath is by default set to
 
  \jdk1.2\jre\lib\rt.jar;\jdk1.2\jre\lib\i18n.jar
 
(Assuming \jdk1.2 is the directory where you have installed JDK 1.2).
The problem is that the rt.jar archive contains the original
collection classes. Since the bootclasspath is searched first, the
compiler will never find the retrofitted versions!
 
The problem can be fixed by prefixing the bootclasspath with your own
classes directory (the one where you keep the retrofitted collection
classes). On Windows, this is achieved by having the batch file
gjc.bat read as follows:
 
  java -ms12m gjc.Main -bootclasspath
\gj\classes\;c:\jdk1.2\jre\lib\rt.jar;c:\jdk1.2\jre\lib\i18n.jar %1 %2 %3 %4
%5 %6 %7 %8 %9
 
On Unix, an alias such as
 
  alias gjc   java -ms12m gjc.Main -bootclasspath
$HOME\gj\classes:$HOME\jdk1.2\jre\lib\rt.jar:$HOME\jdk1.2\jre\lib\i18n.jar
 
should work.

Comments and bug reports to the Pizza Group,
pizza@cis.unisa.edu.au. Java is a trademark of Sun Microsystems. All software and documents on the Pizza site are © Copyright 1996, 1997 by the respective authors as attributed on each. Terms for redistribution are available.