gorilla.jpg
JFreeChart Runs Free!
Introduction
Has JFreeChart escaped the Java Trap? Yes!!! At least partially, if the chart image below is anything to go by. It has been created using JamVM, GNU Classpath, Cairo (via the bindings provided by the Java-Gnome project), JFreeChart and a custom class CairoGraphics2D.java - no proprietary software required!

MultipleAxisDemo1.png
How To
To create the sample chart above, I used the following setup on my Gentoo Linux development machine: The test program is: The command line used to run the demo (on my system):

jamvm -Djava.library.path=/usr/local/lib/ -classpath .:/home/dgilbert/jfreechart-1.0.0/lib/:/usr/local/share/java/cairo1.0.jar:/usr/local/share/java/glib0.2.jar test.MultipleAxisDemo1

This requires a minor workaround - the jfreechart-1.0.0.jar and jcommon-1.0.0.jar files in jfreechart-1.0.0/lib need to be unpacked (unzipped or unjarred), as a segmentation fault occurs if the jar files are included directly on the classpath (I'll investigate that some more later. UPDATE: Mark Wielaard tells me this is a bug in JamVM 1.4.0 that is fixed in 1.4.1).
Other Samples
Some other test applications produce good output also, I'll provide source code for these later:

PieChartTest.png

BarCharTest.png

TimeChartTest.png
Conclusions
From this test, I conclude:
  • GNU Classpath is in a good state for running the core JFreeChart code;
  • Cairo is in a good state for meeting JFreeChart's vector graphics requirements;
  • the upcoming GNU Classpath switchover from Graphics to Graphics2D (with a Cairo back end) should allow JFreeChart to run on GNU Classpath directly;
  • my objective to make JFreeChart runnable on a fully free software stack is close to realization;
Thanks to the hackers on all the mentioned projects, but particularly to the Java-Gnome developers for their prompt assistance on the mailing list and bug fixes in CVS.

Next step: a patch for StatCVS to make it work with free runtimes (I'm pretty hopeful that this will be an easy fix).
Valid HTML 4.01! (C)opyright 2000-2005, by Object Refinery Limited.
All rights reserved.
apache_pb.gif