This article explains how to install and configure IntelliJ IDEA for use with ImageJ development. Directions correspond to IntelliJ IDEA 11.1, and may need adjustment for other versions.
Install and configure IDEA
- Install Java Development Kit. Download and install Java SE 8 from the Java web site. Or install it via a package manager, if possible.
- Install IDEA. Download and install IDEA from the IDEA web site.
Import the ImageJ source
-
From the IDEA menu, choose Version Control › Checkout from Version Control › Git
- For the Git Repository URL, enter:
git://github.com/imagej/imagej
- Specify a Parent Directory, click Clone, and wait
- When prompted, click Yes to create an IntelliJ IDEA project from the sources
On some platforms, the first time you perform this procedure, you may be prompted to select the project JDK:
- Click the plus sign and choose “JSDK”
- Navigate to the directory containing your JDK installation
Launch the program
- Choose Run › Edit Configurations from the menu
- Click the Plus icon and choose Application
- In the Name field, type “ImageJ”
- Type “net.imagej.Main” for the Main class
- For “Use classpath and JDK of module” select “imagej” from the list
- Click OK
- Choose Run › Run “ImageJ” from the menu
The project automatically builds before launching, so it may take a little while the first time.
Troubleshooting
Renaming SciJava @Plugin
annotated classes
When renaming a classname which was annotated with SciJava’s @Plugin
annotation, an error may occur during launch of the application looking like:
[ERROR] Exception during event handling:
[Event] org.scijava.module.event.ModulesUpdatedEvent
context = org.scijava.Context@1a05aced
consumed = false
items[0] = label='About ImageJ...', iconPath='/icons/commands/information.png', priority=0.0, enabled=true, pluginType=Command
items[1] = label='Preferences', priority=0.0, enabled=true, pluginType=Command
items[2] = label='Quit', iconPath='/icons/commands/door_in.png', priority=0.0, enabled=true, pluginType=Command
[Subscriber] org.scijava.menu.DefaultMenuService [priority = 0.0]
[Method] protected void org.scijava.menu.DefaultMenuService.onEvent(org.scijava.module.event.ModulesUpdatedEvent)
java.lang.IllegalStateException: Can't overwrite cause with org.scijava.InstantiableException: Class not found:
the.plugin.you.just.Renamed
The error may be related to some caching mechanism in the IDE. The solution is to clear the caches, e.g. by running mvn clean
from the maven panel.