For some time there has been a push to update the bundled version of Java that ships with Fiji. The JetBrains runtime in particular was highly appealing due to its inclusion of JavaFX, allowing developers to explore new graphical interface options.
Our initial testing with JetBrains Java 8 revealed some issues, in particular potential deadlock/freezing problems. We saw this as an opportunity to explore shipping Java 11, as many developers are eager to build plugins that take advantage of the advances post-Java 8.
Unfortunately, the JetBrains Java 11 appears to have bundled (bizarrely) JavaFX 10, which does not play well with anything else in the JavaFX ecosystem (e.g. the ubiquitous controlsfx). So with marks against both 8 and 11, a JetBrains runtime looks to be very unlikely at this time.
Next we considered AdoptOpenJDK 11. It has performed very well in our tests - with a caveat: in Java 11, JavaFX was split out of the core Java runtime and is now distributed as a jar dependency. This means JavaFX would have to be made available in ImageJ on an update site.
So here’s where we need your feedback:
- Would going to a Java 11 requirement break your Fiji?
- If you’re using JavaFX, do you have functionality that is tied to JavaFX8?
- How would you feel about transitioning update sites from Java 8 to Java 11? This would make the current Java-8 site obsolete, and likely result in two new sites: ImageJ-11 and Fiji-11.
- In your own use, have you had to override the Java bundled with Fiji? (including using a system Java, instead of
- Although new Fiji bundles could have these sites enabled and ship with a Java 11 runtime, existing installations would need to be manually updated to a new Java. Although it would be a considerable investment, we could look at revising the ImageJ updater to do one or both of:
- Allow update sites to register their need for a particular Java version
- Explicitly manage the bundled Java versions
Please let us know how these directions might affect you. If you have questions or thoughts of other directions, please share!
If you’d like to test Java 11, you can: