Getting Fiji ImageJ to work with GUI on ARM devices


I have Fiji ImageJ working on my iMac and my MacBook (both x86_64 devices) but I’m struggling to get it to run on a Jetson Nano board (arm64) or a Raspberry Pi board (32bit). The exception message which prints out is:

pi@raspberrypi:~ $ ~/
Apr 21, 2021 9:23:01 AM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
Error while executing the main() method of class 'net.imagej.Main':
java.lang.IllegalArgumentException: Invalid service: sc.fiji.filamentdetector.gui.GUIStatusService
	at org.scijava.service.ServiceHelper.createExactService(
	at org.scijava.service.ServiceHelper.loadService(
	at org.scijava.service.ServiceHelper.loadService(
	at org.scijava.service.ServiceHelper.loadServices(
	at org.scijava.Context.<init>(
	at org.scijava.Context.<init>(
	at org.scijava.Context.<init>(
	at org.scijava.Context.<init>(
	at net.imagej.ImageJ.<init>(
	at net.imagej.Main.main(
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(
	at java.lang.reflect.Method.invoke(
	at net.imagej.launcher.ClassLauncher.launch(
	at net.imagej.launcher.ClassLauncher.main(
Caused by: java.lang.NullPointerException
	at java.util.ArrayList.addAll(
	at org.scijava.util.ClassUtils.getAnnotatedFields(
	at org.scijava.util.ClassUtils.getAnnotatedFields(
	at org.scijava.service.ServiceHelper.createServiceRecursively(
	at org.scijava.service.ServiceHelper.createExactService(
	... 16 more
pi@raspberrypi:~ $

I thought this should work based on the instructions here but I wonder if anybody else is actually trying to do this or if running ImageJ on ARM is unusual.

Thanks in advance,

@jamesd3142 I can’t comment on the Jetson Nano, but it did work for me on a RPi 4B 4GB running Raspberry Pi OS Buster, and I think I was the last person to update those instructions and the script…

I can reproduce this error by downloading a fresh Fiji and it looks like we are not alone:

I think this issue might summarise the situation nicely:

For now, you may be able to find a working no-jre version from Index of /fiji/archive/20201022-1755.