Welcome to Java-GI

Java-GI generates Java bindings for native libraries like Gtk, LibAdwaita, GtkSourceview, WebkitGtk and GStreamer using GObject-Introspection data. The bindings use the Panama Foreign Function & Memory API (JEP-434) to directly access native resources from inside the JVM.

Screenshot of Java-GI code with the Browser example

Please note that Java-GI is still under active development. Feedback is welcome.

How to use

Supported libraries

Java-GI version 0.7 has been tested with the following libraries:

Library Version
GLib 2.76
GTK 4.10
LibAdwaita 1.3
GStreamer 1.20
GtkSourceview 5.9
WebkitGtk 2.41

For these libraries, pre-built Java bindings are available from JitPack.io. Consult the usage guide for more information.

API documentation

Java-GI converts API documentation from GObject-Introspection to Javadoc. For the library bindings published by Java-GI, the complete Javadoc pages are available online.

JAR files with the Javadoc and source code, to use offline in your IDE, are available from JitPack.io.

Example apps

You can find example applications in the java-gi-examples repository.


To build Java-GI for yourself, make changes, or use Java-GI to generate bindings for other (GObject-Introspection based) libraries, follow the instructions here. Please log issues, questions and requests on Github, or join the discussion on Matrix.