IJ2 is out
 Sec. 15: Scripts Up Part III: Extending IJ Sec. 17: Scripting 

16 Plugins

Plugins are a much more powerful concept than Macros↑ and Scripts↑ and most of ImageJ’s built-in menu commands are in fact implemented as plugins. Quoting Werner Bailer [103]:
Plugins are implemented as Java classes, which means that you can use all features of the Java language, access the full ImageJ API[?] and use all standard and third-party Java APIs in a plugin. This opens a wide range of possibilities of what can be done in a plugin.
The most common uses of plugins are filters performing some analysis or processing on an image or image stack and I/O plugins for reading/writing not natively supported formats from/to file or other devices. But as you can see when looking at the plugins listed on the ImageJ plugins page, there are many other things you can do with plugins, such as rendering graphics or creating extensions of the ImageJ graphical user interface.
Plugins in the ImageJ/plugins/ folder are listed at the bottom of the Plugins menu (see 8: Organizing Commands in the Menu Bar↓). Only .class and .jar files in the plugins folder with at least one underscore in their name will be installed. Note that, with IJ 1.44d an later, ImageJ no longer automatically installs, at startup, plugins in JAR file directories that start with a lower case letter.

Developing ImageJ Plugins

More information on how to develop ImageJ plugins can be obtained on the following documents:
  1. Developer Resources Page on the ImageJ website (HelpDev. Resources…↓):
  2. Dedicated tutorials on Fiji’s webpage:
  3. Dedicated tutorials on the ImageJ Documentation Portal:
  4. Dedicated tutorials on the ImageJDev webpage:[?]
 Sec. 15: Scripts Up Part III: Extending IJ Sec. 17: Scripting