JabRef is an open-source, cross-platform citation and reference management tool.
Stay on top of your literature: JabRef helps you to collect and organize sources, find the paper you need and discover the latest research.
JabRef is available free of charge and is actively developed. It supports you in every step of your research work.
Fresh development builds are available at builds.jabref.org. The latest stable release is available at FossHub.
Please see our Installation Guide.
We are thankful for any bug reports or other feedback. If you have ideas for new features you want to be included in JabRef, tell us in the feature section of our forum! If you need support in using JabRef, please read the documentation first, the frequently asked questions (FAQ) and also have a look at our community forum. You can use our GitHub issue tracker to file bug reports.
An explanation of donation possibilities and usage of donations is available at our donations page.
Want to be part of a free and open-source project that tens of thousands of scientists use every day? Check out the ways you can contribute, below:
We view pull requests as a collaborative process. Submit a pull request early to get feedback from the team on work in progress. We will discuss improvements with you and agree to merge them once the developers approve. Please also remember to discuss bigger changes early with the core developers to avoid a waste of time and work. Some fundamental design decisions can be found within our list of Architectural Decision Records.
If you want a step-by-step walk-through on how to set-up your workspace, please check this guideline.
To compile JabRef from source, you need a Java Development Kit 20 and JAVA_HOME
pointing to this JDK.
To run it, just execute gradlew run
.
When you want to develop, it is necessary to generate additional sources using gradlew generateSource
and then generate the Eclipse gradlew eclipse
.
For IntelliJ IDEA, just import the project via a Gradle Import by pointing at the build.gradle
.
gradlew test
executes all tests. We use GitHub Actions for executing the tests after each commit. For developing, it is sufficient to locally only run the associated test for the classes you changed. Github will report any other failure.