This documentation is for the current version of Micro-Manager (2.0). For Micro-Manager 1.4 plugins, please see Writing plugins for Micro-Manager-1.4.
Introduction
Writing a new Micro-Manager plugin involves two steps. First, you will write, test and debug your code. It is easiest to do this using a “Integrated Development Environment” (IDE) such as NetBeans, Eclipse or IntelliJ. Each IDE can be used to build plugins so that they can run on the computer they were written on without any additional steps. Since the Micro-Manager developers all appear to be using IntelliJ, you will find better documentation and support for that IDE than the others.
If you think your plugin will be useful to anyone besides yourself (or if you want to use it on a computer other than the one you developed it on), you will likely want to distribute the plugin in the form of a .jar file that can simply be copied into the mmplugins
folder and be recognized by Micro- Manager. Micro-Manager 2.0 uses SciJava’s plugin discovery mechanism. This uses Java annotations that need to be generated by your build environment. Currently, we have no idea how to do that from an IDE, so the following instructions (based on work by SophieH) will help you use a command-line tool to build plugins that can run in Micro-Manager 2.0. If you figure out how to do this completely within an IDE, please contribute your notes!
Setting up to write, debug and package plugins
Download and install a recent version of Micro-Manager.
Downloaded and install a Java JDK. Micro-Manager currently is build with JDK8, which can be freely downloaded from Adoptium.
Download and install your IDE of choice.
Clone the Micro-Manager github repository. Optionally run the command git submodule update --init --recursive
which will clone all submodules (currently the Core and devices, which you will not need to build a Java plugin).
Use the IDE to write and debug your plugin code (follow the links to the NetBeans, Eclipse or IntelliJ pages for IDE-specific instructions). If you only want to run your plugin on the machine it was developed on, you do not need to proceed past this point.
Building a redistributable .jar file
These instructions will allow you to compile your code for distribution. Note that these instructions will only work on Windows.
First, download and install Apache Ant.
You will need to set the following environment variables. On Windows, they can be added in Control Panel > System and Security > System > “Advanced system settings” > “Environment variables…”.
JAVA_HOME
: set to the path to your JDK installation, e.g.C:\Program Files\AdoptOpenJDK\jdk8u181-b13
. Do not add quotes to the value, even if it contains spaces.ANT_HOME
: set to the path to your Ant installation (whereever you placed the extracted binary package), e.g.C:\apache-ant-1.9.16
. Do not add quotes to the value, even if it contains spaces.PATH
: It is convenient to add Ant to the command search path. You can append;%ANT_HOME%\bin
to the end of the SystemPATH
varialbe, or add a User variable namedPATH
and set its value to%PATH%;%ANT_HOME%\bin
.
Verify that the Environment Variables were set correctly and Ant is working properly by typing ant -version
. You should get a reply similar to:
Apache Ant(TM) version 1.9.16 compiled on July 10 2021
In your terminal application (I use Git bash), cd to the root of the micro-manager source code and ran the two following commands:
ant -f buildscripts/fetchdeps.xml
ant build-buildtools
Copy files from binary installation of Micro-Manager
If you had not yet done so, download and install a recent version of Micro-Manager. Copy the following .jar files from that Micro-Manger installation into the build\Java
folder, which is located in the micro-manager source code folder you cloned (the build\Java
folder should already contain the file AntExtensions.jar
):
MMJ_.jar
AcqEngJ-X.X.X.jar
MMCoreJ.jar
Build and run your plugin code
Change directory to micro-manager\plugins\Example, and issue the command ant jar
. This should result in a file Example.jar
in the build\Java\plugins
directory. Copy this jar file to the mmplugins
folder of your Micro-Manager installation and it should appear in the menu and work.