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...including commercial, closed-source projects.
20 Aug 2016 - v3.1.0 available
v3.1.0 is a minor release with some new backward-compatible API changes for bug fixes around interoperability between Windows and Mac/*nix, and to add a new comparator that sorts individuals on a specific event date first, then by name.
6 Aug 2016 - v3.0.3 available
v3.0.3 is a minor fix release. The toString() implementation for Individuals no longer says "spouse of unknown" when the spouse is missing in a MARRiage record, and the AncestryCalculator class no longer throws a StackOverflowError due to infinite recursion when a GEDCOM has a cyclical ancestral relationship.
30 Jul 2016 - v3.0.2 available
v3.0.2 is a minor fix release. It addresses an issue where RelationshipCalculator was prone to NullPointerExceptions for Individuals with a null value for their sex property.
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.
We're on Maven Central
Building from Source
Requirements/recommendations for building the software from source code: