Getting Fiji ImageJ to work with GUI on ARM devices

Hello,

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:~ $ ~/Fiji.app/ImageJ.sh
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(ServiceHelper.java:278)
	at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:229)
	at org.scijava.service.ServiceHelper.loadService(ServiceHelper.java:192)
	at org.scijava.service.ServiceHelper.loadServices(ServiceHelper.java:164)
	at org.scijava.Context.<init>(Context.java:278)
	at org.scijava.Context.<init>(Context.java:234)
	at org.scijava.Context.<init>(Context.java:174)
	at org.scijava.Context.<init>(Context.java:160)
	at net.imagej.ImageJ.<init>(ImageJ.java:77)
	at net.imagej.Main.main(Main.java:54)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:291)
	at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:198)
	at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:89)
Caused by: java.lang.NullPointerException
	at java.util.ArrayList.addAll(ArrayList.java:577)
	at org.scijava.util.ClassUtils.getAnnotatedFields(ClassUtils.java:193)
	at org.scijava.util.ClassUtils.getAnnotatedFields(ClassUtils.java:163)
	at org.scijava.service.ServiceHelper.createServiceRecursively(ServiceHelper.java:315)
	at org.scijava.service.ServiceHelper.createExactService(ServiceHelper.java:267)
	... 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,
James

@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 ImageJ.sh 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.