Latest News

Release 1.3.0 is now available, dual-licensed under LGPL and EPL.

Once upon a time, JGraphT source code lived in an svn repository, but these days it lives in github. Please send all new contributions there in the form of pull requests!

If you enjoy using JGraphT, please click the Like button for our Facebook page!

About JGraphT

JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:

Although powerful, JGraphT is designed to be simple and type-safe (via Java generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.

Other features offered by JGraphT:

Maven Releases

Starting from 0.9.0, every JGraphT release is published to the Maven Central Repository. You can add a dependency from your project as follows:

We have also started auto-publishing SNAPSHOT builds for every successful commit to master. To use the bleeding edge:

and make sure the snapshot repository is enabled:



You can download the latest version of JGraphT from the project page on SourceForge:

Windows Download
A ZIP file that contains source code and runtime files of JGraphT.
Linux Download
A tar.gz file that contains source code and runtime files of JGraphT.

There are two downloads, one for Windows-based systems, and one for Linux/Unix-based systems. The downloads contain identical Java source code and a README.md file to help you to get started. Starting with version 1.0.0, JDK 1.8 is required at a minimum (earlier versions with less functionality can be used on older JDK's/JRE's).

The JavaDoc files are available online. They are also included in the downloads so you can view them locally.


The JGraphT project is maintained on github and released at SourceForge. You can:

If you are reporting a bug, please describe a reproducing scenario. If possible, attach a small program with a description of what is wrong and needs fixing.

If you need a bug fixed really urgently, use the source...

There is also a wiki set up for everyone in the JGraphT community to share information about the project.

JGraphT and JGraphX

JGraphT and JGraphX are two different libraries which are intended for different purposes.



The two libraries are complementary and can be used together via the JGraphXAdapter provided by JGraphT; this adapter allows a JGraphT graph data structure to be used as the model being viewed and controlled via JGraphX.

Note that JGraphX is the successor to the older JGraph project, which reached its end of life years ago. JGraphT used to maintain JGraph support as well, but as of JGraphT release 1.1.1, this support is being dropped, so users should migrate to JGraphX instead.

Your Improvements

If you add new features or fix bugs please send us your updates. We will add them to the next release of JGraphT so everyone can enjoy your contribution. You might also benefit from it: others may fix hidden bugs in your code or may contribute new features.

If you wish to join the JGraphT team, please send us a few words about yourself - we'll be happy to grow!


Valid HTML 4.01! © Copyright 2003-2018, by Barak Naveh and Contributors. All rights reserved. Get JGraphT at SourceForge.net. Fast, secure and Free Open Source software downloads