Please direct any questions or issues to this Image.sc Forum thread.
Thank you for your patience as we improve the website!
Source code
The source code of ImageJ is very modular; i.e., it is organized into well-separated projects. This separation offers many advantages for efficient software development and it is well worth investing a little bit of time to understand.
Contents
Where is the code?
- All source code is on GitHub.
- Each project exists in its own GitHub organization.
- Each organization contains multiple source code repositories.
- Each repository corresponds to one Java library (.jar file).
Logo | Organization | Purpose |
![]() |
SciJava | Common utilities, plugin infrastructure, scripting, the context |
![]() |
ImageJ | A general-purpose image processing application |
![]() |
ImgLib2 | Generic multi-dimensional data processing |
![]() |
SCIFIO | Extensible image file I/O |
![]() |
Fiji | A "batteries-included" distribution of ImageJ |
See the Architecture page for more information about the relationship between these projects.
What is the license?
Most is BSD-2 (permissive); some is GPL (copyleft). See the Licensing page.
Building from source
Virtually all of these repositories have a top-level pom.xml
file, identifying them as Maven projects.
To build a Maven project:
- Install Maven.
- Clone the source repository of interest.
- Type
mvn
from the top-level directory.
Advanced instructions for building, or modifying, the source code are available for specific development environments:
![]() |
![]() |
![]() |
![]() |
Note that these tutorials are targeted towards ImageJ, but would apply to any Maven-based project.
Javadocs
Javadoc for all ImageJ-related projects can be found online:
You can also search the javadocs at http://search.imagej.net/ using the Javadoc button.
Running ImageJ1 unit tests
We have written a substantial number of unit tests to exercise ImageJ 1.x functionality. See the Unit tests for ImageJ1 page for more information.