After an upgrade to Debian-10 (Buster) we can no longer process image formats with ITK that need SCIFIO (bioformats). Even though ITK-5.0.1 is newly compiled after the upgrade we get:
We could also update the JARs. Chatting with @ctrueden, my understanding that we can now move to bioformats JARs, which are maintained and now available in a non-copyleft license.
I have been using SCIFIO will out issue recently on OSX and Linux in several environments. I installed openjdk-8-jdk on an ubuntu 18.04 image recently to get it working.
You may also find some insights in a recent SimpleITK Conda recipe where I enabled SCIFIO to create a local package.
Hm, what java dependencies need to be satisfied during built and which during execution time? For my setup in the Dockerfile compilation works without any problems even without any JDK or JRE. With SCIFIO enabled, the installation then contains JARs and even a folder named jre/, so one might think it would not even need a JRE from the system.
Many thanks @blowekamp for the hint with JAVA_HOME, that did the trick even for the local installation.
So is the error caused because the “old JAVA version downloaded as part of SCIFIO” does not match the version of javac that was used to compile the SCIFIO-JARs (also downloaded as part of SCIFIO?)?
Yes, the JVM downloaded take priority over java in the PATH, but JAVA_HOME take higher priority. If you just delete lib/jre from the build tree and provide a java it works too.
Also got it working within a docker image with specifying JAVA_HOME
pointing to openjdk-8-jre or even openjdk-11-jre.
So the prolem seems to be due to the SCIFIO JARs being built for a different java version than is provided by lib/jre in the ITK installation.
With