We are proud to announce the release of GNU Classpath 0.98.
GNU Classpath, essential libraries for java, is a project to create
free core class libraries for use with runtimes, compilers and tools
for the java programming language.
The GNU Classpath developer snapshot releases are not directly aimed
at the end user but are meant to be integrated into larger development
platforms. For example JamVM, CACAO and Kaffe can make use of an installed
copy of GNU Classpath 0.98, while GCC (gcj) will use the developer
snapshots as a base for future versions. For more projects based on GNU
This release brings with it a number of interesting new features:
There have also been many bugfixes over the past year. Those relevant to 0.98 can be found at
With the 0.95 release, we switched fully towards the 1.5 generics work that we previously released separately as classpath-generics. All this work is now fully integrated in the main release and various runtimes (gcj, cacao, jamvm, ikvm, etc) have been extended to take advantage of the new generics, annotations and enumeration support in the core library. As a consequence, only 1.5 capable compilers (currently the Eclipse Compiler for Java (ecj) and Sun's javac) may be used to build Classpath.
The GNU Classpath developers site
provides detailed information on how to start with helping the GNU
Classpath project and gives an overview of the core class library
packages currently provided.
For each snapshot release generated documentation is provided through
the GNU Classpath Tools gjdoc project,which will become part of GNU Classpath
itself with the release of 0.98. A documentation generation
framework for java source files used by the GNU project. Full
documentation on the currently implementated packages and classes can
be found at:
We are looking into how to extend the documentation experience in the
future. Please contact the mailinglist if you would like to help with
For more information about the project see also:
GNU Classpath 0.98 can be downloaded from
or one of the ftp.gnu.org mirrors
or the Classpath
continuous integration system
New in release 0.98 (Feb 05, 2009)
- Native support for BigInteger is now provided using the GMP library. A new option, --enable/disable-gmp is provided, and the option is enabled by default if GMP is found.
- Classpath now makes use of a new StringBuilder implementation internally called CPStringBuilder. In addition to being unsynchronised, like StringBuilder, this also avoids copying the
array when toString or substring is called. While StringBuffer/Builder always retain their own array, which is only altered during resizing, CPStringBuilder gives away its array when the result is generated by toString()/substring() and starts afresh. The default capacity of CPStringBuilder can also be configured using the gnu.classpath.cpstringbuilder.capacity property. (PR21869)
- gjdoc is now built as part of tools.zip
- Import of the Java Activation Framework from ClasspathX to provide javax.activation (part of 1.6)
- Preliminary version of java.util.Scanner (PR30436)
- Reduce cost of ThreadLocal(s) to improve Jython performance (PR33690)
- Updated to use CLDR 1.5.1 (PR35237)
- Many bug fixes including:
- PR22851: zoneStrings in gnu/java/locale/LocaleInformation*
- PR31895: setCurrency(Currency) does not actually change the currency.
- PR32028: Make fails at gjdoc
- PR34840: Mismatch between Sun and Classpath's java.lang.Appendable
- PR35487: gcj causes ConcurrentModificationException during tomcat5
- PR35690: javax.tools.FileObject.toUri is in wrong case
- PR36085: java.util.regex escape-sequence handling
- PR36147: Apache Tomcat fails to read descriptors using GNU XML
- PR36219: gnu.xml.transform.SortKey isn't subclass
- PR36220: NPEs in gnu.xml.transform.* clone methods
- PR36221: DomDOMException running SPEC jvm 2008 xml.transform
- PR36477: OOME in CPStringBuilder when running Eclipse
- PR36522: Policy file is not read at all
- PR36636: gjar -u doesn't work
- PR36637: --without-fastjar doesn't wor
- PR36677: Omission bug in JDWP VirtualMachineCommandSet
- PR38417: gnu.java.security.util.PRNG produces easily predictable values
- PR38473: Segmentation fault in retrieving font outline decomposition
- PR38861: Support XULRunner 1.9.1.
- PR38912: XMLParser not interning element names
Runtime interface changes:
- VMSecureRandom has moved to gnu.java.security.jce.prng.VMSecureRandom as part of the fix for PR38417.
- gnu.java.lang.VMCPStringBuilder has been added and should be added to avoid the inefficency of reflection when creating non-copied String objects.
The following people helped with this release:
Chris Burdess, David Daney, David Edelsohn, Daniel Frampton, Michael Franz, Jeroen Frijters, David P Grove, Andrew Haley, Laszlo Andras Hernadi, Andrew John Hughes, Matthias Klose, Byeogncheol Lee, Robert Lougher, Raif S. Naffah, Xavier Poinsard, Ian Rogers, Robert Schuster, Archit Shah, Joshua Sumali, Christian Thalinger, Mario Torre, Tom Tromey, Ralf Wildenhues, Mark Wielaard
We would also like to thank the numerous bug reporters and testers! In
addition, we'd like to extend our thanks to all those who've contributed over
the years and have helped in building a thriving and friendly community
around the GNU Classpath project.