Source code
Project management
Coding style
Writing plugins
ImageJ Ops
Contributing to a plugin
Distributing your plugins
Development lifecycle
Building a POM
Developing with Eclipse
Hands-on debugging
Adding new ops
Adding new formats
Using native libraries
Tips for developers
Tips for C++ developers
ImageJ 1.x plugins

An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. Most modern IDEs offer intelligent code completion features.

ImageJ can be developed using any IDE which supports Maven, which includes:

Eclipse-luna.png Netbeans.png Intellij-idea.png Command-line.png

Why use an IDE?

There are many advantages of using an IDE for software development:

  1. It is easy to access documentation about classes (i.e. javadoc): just point your cursor over the name of the class, or press the keyboard shortcut (e.g., in Eclipse: Shift+F2).
  2. You can use code completion: just type the start of the class name, variable, method, etc you want to use and hit the keyboard shortcut (e.g., in Eclipse: ^ Ctrl+Space).
  3. Compile errors are listed in a concise list; double-clicking on a line in that list will move the cursor to the problem.
  4. You can debug your program interactively: just open the main class (i.e. a class having a public static void main(String[] args) method) and launch it in debug mode. E.g., in Eclipse: go to Run ▶ Debug As ▶ Java Application). This will switch to a different window layout (the Debug perspective) which offers you a range of views that are useful for debugging such as: local variables, thread stack traces, etc. You can interrupt the program at any time by clicking on the pause symbol and inspect the current state, single-step through the code and even to a limited amount replace code on-the-fly.
  5. The most important version control systems can be accessed easily through the IDE's GUI.
  6. There are many awesome keyboard shortcuts, especially effective to quickly explore large projects. (see e.g. keyboard shortcuts for Eclipse).
  7. They can be enhanced with plugins. E.g., for Eclipse, the Vrapper plugin adds a vim-like input scheme.

The main disadvantage of modern IDEs is that they are quite large and require a lot of resources—RAM and screen size in particular.