Welcome to the gedcom4j project
gedcom4j is an open-source, free-to-use Java library for reading (parsing) and writing genealogy data.
Most genealogy programs and tools can import and export their data to file in the GEDCOM file format. Using gedcom4j, you can write a Java program to load data from a GEDCOM file into a Java data structure for your examination and manipulation, and you can also save GEDCOM files out from the same data model, including data you created without having read a file first.
Please note that gedcom4j is not an application. It is a library (jar file) that can read, manipulate, and write genealogy data using the GEDCOM format in your own Java programs.
22 Jul 2016 - v3.0.1 available
v3.0.1 addresses a few bugs and adds parsing support for textual date strings, including ranges, periods, and imprecise dates from the Gregorian, Julian, Hebrew, and French Republican calendars.
15 Jul 2016 - v3.0.0 available
v3.0.0 is a major release. Most existing code using earlier versions of gedcom4j will need significant modification, primarily around the object model, since it now implements the Javabeans spec...so you'll need to switch to getters and setters. Full details can be found in the release notes on the download page.
8 Jul 2016 - v2.3.1 available
v2.3.1 of gedcom4j further improved performance and reduced memory consumption.
File parsing and loading into object model is now done line by line on-the-fly, rather than loading the entire file into memory, then parsing the lines of the file. There is now also a global options class named Options, in which you can choose whether collections in the object model should be automatically initialized (thus saving you from having to do null checks) or left null (thus saving memory). The getter for each of these collections is overloaded with a getter that takes a boolean argument; when true, the getter will initialize the collection if needed before returning a reference.
1 Jul 2016 - v2.3.0 available
v2.3.0 of gedcom4j was primarily focused on improving performance for installations with smaller heap sizes and less CPU power available (for whatever reason), including the ability to get progress notification on file load/parse and construct/write operations, as well as introducing the ability to cancel these operations while in progress. There were API-impacting changes as a result, so the version skipped from 2.2.8 to 2.3.0, and you may need to make some minor changes in code using earlier versions. See the release notes in the downloads section for full details.
10 Jun 2016 - v2.2.8 available
This release fixes an issue where two-digit level numbers were not supported like the spec requires.
2 Jun 2016 - v2.2.7 available
This was a performance improvement release. The GedcomParser class now loads files about 20 times faster than release v2.2.6.
22 May 2016 - v2.2.6 available
Two changes involve line breaks embedded within the text value of a tag. The GEDCOM spec directs implementations to split lines using CONT or CONC tags and not to have embedded line-breaks within text strings. This release brings gedcom4j into adherence to the spec on this matter, and allows more flexibility when parsing files that do not strictly conform to the spec. Issues around loading Unicode files with byte order marks and in trying to get an individual's descendants are also fixed. Details are available on the downloads page.
We're on Maven Central
Building from Source
Minimum Requirement: JDK 6 (any edition) or later
Requirements/recommendations for building the software from source code: