Java-gnome
From Wikipedia, the free encyclopedia
java-gnome is a set of language bindings for the Java programming language for use in the GNOME desktop environment. It is part of the official GNOME language bindings suite and provides a set of libraries allowing developers to write programs for GNOME using Java and the GTK cross-platform widget toolkit.
| Java-gnome | |
|---|---|
| Initial release | 0.99[1] / January 20, 1999 |
| Stable release | |
| Written in | C and Java |
| Operating system | UNIX-like |
| Type | GUI language bindings for java |
| License | GNU General Public License with exception. |
| Website | java-gnome |
| Repository | |
Development
Originally released on 8 October 1999 as version 0.2, it included the first bindings for Gnome and GTK. Until version 2.0, java-gnome was written by a group of online contributors.[3] Development of this codebase by 5 successive teams continued up to version 2.16.2 supporting GTK 2.6, after which development ceased for several years, and was ultimately discontinued[4].
The current version, 4.0, was originally an internal project of Operational Dynamics, a change management consultancy group.[5] The 2.0 and 4.0 versions have similar APIs, but specific names (of e.g. packages, classes, and methods) are different, and internal code in 4.0 is encapsulated and not externally visible.[4]
The project is currently maintained by "java gnome Hackers". The leader of this latest team is Andrew Cowie, one of the principal architects for the java-gnome project.[6][7]
Functions
Java-gnome provides access to various GNOME libraries using idiomatic class-based bindings. The provided libraries in version 4.0 include:
- GTK - The widget toolkit itself.
- GDK - Contains low level drawing primitives. The majority of drawing is done by Cairo.
- Glib and Gobject - Containers for the rest of infrastructure that allow the use of OOP.
- Pango - Text layout engine.
- ATK - Accessibility toolkit.
- GtkSourceView - Source code highlighter.
- LibNotify - Warning notifier.
- GtkSpell - Spellchecker.
- LibUnique - Enforces that only one instance of a program is open simultaniously.
Support
Java-gnome is only supported in Linux and Unix distributions, unlike most other GTK bindings that are supported by other operating systems. Distribution specific instructions are available for:
Semi-finished instructions are available for Open Solaris and Fedora Core Linux distributions.
Licensing
Java-gnome is free software released under the terms of the GNU General Public License version 2.[8]
Example
To compile a java-gnome class, it is necessary to add the gtk-4.1.jar jar in the classpath. The jar is available on Debian (and all Debian-based distributions) in the libjava-gnome-java[9] package, which can be found in the official repositories (the jar is installed under the /usr/share/java path).

package org.wikipedia.javagnome.example;
import org.gnome.gdk.Event;
import org.gnome.gtk.Gtk;
import org.gnome.gtk.Widget;
import org.gnome.gtk.Window;
import org.gnome.gtk.WindowPosition;
/**
* Java-Gnome GTK Example
* inspired official site java-gnome.sourceforge.net
*/
public class GdkSimple extends Window {
public GdkSimple() {
setTitle("Example");
connect((DeleteEvent)(source, event) -> {
Gtk.mainQuit();
return false;
});
setDefaultSize(250, 150);
setPosition(WindowPosition.CENTER);
show();
}
public static void main(String[] args) {
Gtk.init(args);
new GdkSimple();
Gtk.main();
}
}
See also
- GTK
- Clutter