Last stable release:
none yet

Last unstable release:
0.19.0 (May 10th)

new GNOME bindings for the Java language

Gnome-GCJ history

March 24th, 2004 • Gnome-GCJ 0.16.0
This is a maintenance release just to fix some licensing issues. Now, the gcjwrapper tool is licensed unter the terms of the GPL while the libraries are kept under the LGPL.
July 22nd, 2001 • Gnome-GCJ 0.15.0
A maintenance release to make it possible to compile Gnome-GCJ with gcc 3.0.
Gnome-GCJ no longer contains any files from GNU Classpath, libgc, GTK+ and GLib. As a result of this, LICENSE and COPYRIGHT documents changed.
Fixed many autoconf/automake-related build-problems.
Fixed a bug in the ConstantResolver causing the ConstantCodeGenerator to
fail without reason.
New classes: ColorContext (GDK).
New methods in other classes: Event, GdkMain, GdkWindow
New test programs: EntryWindow (part of TestGTK).
2000-09-02 • Version 0.14.0
Constructors in many classes are now public (used to be package-private).
New classes: AppBar, Canvas, CanvasItem, CanvasGroup, ColorPicker, DateEdit, DEntryEdit, Druid, DruidPage, DruidPageFinish, DruidPageStandard, DruidPageStart, FontPicker, FontSelector, Guru, IconEntry, IconList, IconTextItem, IconSelection, NumberEntry, Spell, SpellInfo (GNOME), TargetEntry (GTK+).
New methods in: DragContext, GdkPixmap (GDK), SelectionData, Widget (GTK+)
New test programs: TestDND, a Java implementation of the GTK+ program testdnd (almost complete). CursorsWindow, part of TestGTK.
2000-08-31 • Version 0.13.0
New GDK classes: ButtonEvent, ClientEvent, ConfigureEvent, CrossingEvent, DNDEvent, DragContext, Event, ExposeEvent, FocusEvent, KeyEvent, MotionEvent, MouseEvent, NoExposeEvent, PropertyEvent, ProximityEvent, SelectionEvent, VisibilityEvent.
New GTK classes: ItemFactory (not usable at the moment), SelectionData
New Gnome classes: About, Dial, DockBand, GnomeDialog, GnomePixmap, MDIGenericChild, MessageBox, PaperSelector, PropertyBox, Scores
Modified other classes: App (new constructor), GnomeMain (new init methods), MDI (renamed some methods), Box (renamed some methods, use pointer wrapping), CList (many new methods, fixed listeners), CTree (many new methods), Notebook (use pointer wrapping), Widget (fixed ignored arguments, new method fireEvent), GdkWindow (use pointer wrapping), Main (some new methods), Range (added missing listeners)
Test programs:
  • Argh, due to a missing `+' in the testgtk file, no .java source were included in the dist tarball. This has been fixed now.
  • Some new classes were added to the TestGTK program.
  • Updated implemented listeners in some test programs.
Internal changes: Added support for `const' wrapping - with `wrap-arg const' types like `gchar*' will become `const gchar*'.
Build changes: The test directory has been split into subdirectories for each package (gdk, gtk and gnome). The test programs are only built when the corresponding package is also built.
  Version 0.12.0.
A very minor release.
New Gnome classes:
Modified other classes:
  CList (new constructor)
  CheckButton (now extends ToggleButton)
New test programs:
  testgtk/CListWindow (not complete)
Build fixes:
* Tarball now includes the macros directory and
* Use -classpath when compiling autoconf test programs with gcj.
  Version 0.11.0.
New Gnome classes:
  App, Calculator, Dock, DockItem DockLayout, DockLayoutItem, FileEntry,
  GnomeEntry, HRef, Less, MDI, MDIChild, PixmapMenuItem, UIInfo.
Modified other classes:
  GtkObject (many new methods)
  ScrolledWindow (spelling mistake in addWithViewport)
  Widget (many new methods)
  Main (new method init)
  GdkMain (new method init)
New test programs
  TestGTK - An implementation of the Gtk+ testgtk program in Java.
  It is not complete but the fundation is there.
Build fixes:
* The configure script now looks for libgcj in the same directory prefix
  as the gcj and gcjh binaries.
* C++ source files in src are now compiled with GLIB_CFLAGS.
  Thanks to Adrian Vance Custer for reporting this and suggesting the
  configure fix.
  Version 0.10.0.
Build changes:
* libtool is now used to build libraries. This means that static as well
  as shared libraries can be built. It also means that the Gnome-GCJ
  libraries, header and bytecode files for classes can be installed
  correctly with `make install'.
* Improved checking for libgcj by requiring certain Java classes. Thanks
  to Lee Mallabone reporting the build problems.
* Vpath builds (building in dirs other than the source directory) are
  supported. `make distcheck' also works.
  Version 0.9.0.
Build changes:
* Gnome-GCJ now uses autoconf and automake! As a result of this the
  directory hierarchy has been slightly changed. The output directory
  is currently the same as the source directory (will be fixed in the
* The configure script makes sure egcs/gcj, libgcj and gperf are
  installed, and that they are of recent versions. There is no need for
  editing Makefiles or passing special parameters to configure, as
  everything is done automaticly. The optional program javadoc is also
  checked for.
* Each package now builds a separate library - libgcjgdk, libgcjgtk and
  libgcjgnome. The configure script automaticly checks for these
  libraries - glib, gdk, gtk, gnome - and builds each found.
Internal changes:
* Added support for 'free' wrap type. This types makes it possible
  to free strings returned from GTK functions before the Java string
  is returned.
* Added support for 'pointer' wrap type. This type makes it possible
  to pass return values as pointers. This makes many manual code in
  .defs files unnecessary. This is used in CList and others.
* ClassDefsParser no longer contains a 'basedir' for holding the
  source directory.
* Cleaned up .cc and .h files. They are now split into,
  and one for each library (gdk, gtk, gnome).
* The file objects.gperf-head is no longer needed. Its contents has been
  merged into the ListClasses program.
* Updated some generated doc-comments.
Added first support for Gnome:
* Added Gnome.defs file (base for gnu.gnome.Gnome interface).
Added new classes/interfaces:
  CTreeNode, CTreeCallback (GtkCTreeFunc), RadioButton, CheckMenuItem,
  RadioMenuItem, Calendar, Clock (gnome).
Added new test programs:
  RadioButtonTest, ComboTest.
Added/modified methods in these classes:
  CTree, ColorSelection, AccelGroup, Combo, RcStyle, Widget, Tree, List,
  Version 0.8.0.
Internal changes:
* Code for private constructors and setNativeObject methods is
  generated automaticly for non-GtkObjects.
* Cleaned up among support .cc files. As a result of this could be removed.
* Passing objects has been made simpler. Now there are at least
  five classes of types: Objects (GtkObject, ..), Structures
  (Color, Rectangle, ..), Boxed (Colormap, Font, ..), Complex
  structures (WindowAttr, GCValues, String), and Arrays.
Compilation changes:
* The "private" GCJ header files are no longer needed, so the
  LIBGCJ_PRIVATE_INCLUDES Makefile variable has been removed.
Added new classes:
  Toolbar, GdkImage (GDK), Image, Pixmap, Preview, Geometry (GDK),
  RcStyle, ThemeEngine.
Added/modified methods in these classes:
  GdkWindow, Visual, CList, CTree, Menu, Widget, Window.
Added new test porgram:
  Version 0.7.0.
Renamed gnome-gcj to Gnome-GCJ.
Changes to documentation and homepage:
* Updated description in the README file. Added some links to the LINKS
* Updated the layout of the homepage. Added new Links section, which is a
  copy of the LINKS document.
* The generation of JavaDoc has been improved. An overview.html file was
Major internal changes:
* Constructors for many classes were changed. A dummy "RawData" object is
  passed instead of a "Class" object.
* The automatic creation of Java objects from GTK objects is no longer
  done with reflection and Hashtables in gnu.gtk.Main. Instead gperf is
  used to generate a perfect hash of class names. Code to instantiate
  each class is generated. This means that you need gperf installed
  in order to compile Gnome-GCJ.
* A program GCJWrapper was added. This has two effects. First, the
  generation process is faster and uses less disk space (because fewer
  executables are needed). Second, exceptions are caught and the
  exit value is set to non-zero when this happens (to circumvent
  missing features in GCJ).
* The user-data fields of GdkWindows and Regions are no longer used.
  This is because Gtk already uses them (argh).
Added new GDK classes:
  GdkPixmap, GdkBitmap, GC, GCValues.
Added new GTK classes:
  AccelGroup, Style.
Added/updated/removed methods to the following classes:
  GdkWindow, Main, GdkMain, CList, Editable, Entry, HandleBox, Layout,
  Notebook, Paned, Plug, Range, Socket, SpinButton, Text, ToggleButton,
  Version 0.6.0.
Added new GDK classes:
  Cursor, Visual, Colormap, Region, GdkWindow, GdkMain.
Added new test program:
  FontTest, GdkWindowTest.
Implemented new method in:
  TipsQuery, CList, Entry, Widget.
Javadoc generation:
  Fixed doc-comments for Color.
  Fixed doc-comments for constant classes (gnu.gdk.Gdk, gnu.gtk.Gtk).
  Added dummy 'package-list' file so that standard Java classes look
  like links ("String") instead of full names ("java.lang.String").
Changed the signal invocation system. Listener methods are now called from
Java, not from C++/CNI. Unfortunately this adds another layer, but is
necessary for now. Now the test program "Callbacks" works correctly
(the correct method is called).
  Version 0.5.0.
Improvements to generation and gnome-gcj .defs format:
  A new generator program TypeListGenerator generates a list of gnome-gcj
  types (Java classes, scalar types, etc), along with their related info.
  This makes many wrap-arg/wrap-return directives in .defs files
  Modified java.util.HashMap to circumvent gcj bugs. (The HashMap is used
  by the TypeListGenerator.)
  Simplified many generator programs by putting common methods in the
  Generate class.
Added new classes: Font (gdk), ColorSelection, ColorSelectionDialog.
Improved many classes by adding new Methods:
  AccelLabel, Box, Entry, FileSelection, FontSelection, FontSelectionDialog,
  Layout, List, MenuShell, Notebook, Range, Scale, Statusbar, Text,
  TipsQuery, TreeItem.
Fixed bug in Main causing the static block to be executed before
nativeClasses was initialized. GCJ did not detect this.
  Version 0.4.0
Fixed bug in The file gnu/gtk/MenuDetachCallback.h should
not be included.
New file with string support functions.
Added Callback-cast wrapping support, used by Main.addQuit, addInit
Added new methods to Main, Menu, Widget, CList, Tooltips, AspectFrame,
CheckButton, Curve, HandleBox, and Paned.
Added new GDK classes: Color, Point, Rectangle, Segment, Dimension.
Added new classes: Allocation, Requisition.
Added test program for Tooltips: TooltipsDemo.
The test program CListDemo now adds colors to some rows.
New callback classes QuitCallback and InitCallback.
Version 0.3.0.
Various cleanups in the generator program source code.
Various improvements to generated files:
The gnome-gcj version number is now visible in the file head.
Generated source files are now indentated again.
Automatic indentation for /* and /** comments is supported.
Doc-comments for wrapped parameters are now added (with @param).
Callbacks (not Listeners) are handled differently. This is described
in the wrappers section of the INTERNALS document.
Other changes:
Added new class Combo.
Added new class GtkError.
Added new interface MenuPositionCallback.
Added new/improved methods in Curve (getVector), Window (constructor),
FontSelection, FontSelectionDialog, GammaCurve, InputDialog, Label,
Menu, ScrolledWindow, Container, Main, Range.
Main now handles errors which may occur when creating Java objects from
Gtk objects.
The file is now generated in gnu/gtk of the output directory.
Added a list of header files to the STATUS document.
Version 0.2.0.
Added support for new defines 'type-function', 'include-java', and
Added classes BasicMapEntry, Bucket, HashMap and HashSet (all in
java.util) from Classpath.
Changed constructors in generated classes. The new subclass-constructor
take a Class argument.
Added support for some new methods/fields/signals in Button, CheckButton,
Curve, Dialog, Editable, OptionMenu, Window and GtkObject.
Now automaticly creates a Java object is the returned Gtk object
of a method doesn't have one already. This made Dialog usable.
New test files DialogTest and CurveTest.
Version 0.1.1.
Fixed some bugs in
A Java 2 runtime and a Java 2 compiler are no longer needed to compile
gnome-gcj. Modifications to various Classpath classes made GCJ usable.
Version 0.1.0. First public release.


Bug Tracking
Project Page


  Copyright © 2004 • The Gnome-GCJ project
Kindly hosted by SourceForge