imagej / imagej-launcher

The ImageJ native launcher
https://imagej.net/learn/launcher
BSD 2-Clause "Simplified" License
21 stars 23 forks source link

Retire native launcher code #66

Closed ctrueden closed 2 months ago

ctrueden commented 5 years ago

We want to evaluate whether it's possible to have a pure Java launcher.

The native portion would be some stock launcher such as the JavaFX launcher (see #33), or the newer experimental jpackage tool.

Probably, once Java starts up, it would need to find a suitable JDK on the system to use for actually launching the main application, and "spawn Java from Java." This gives us the power to do things like:

Regarding splash screens: the current launcher code here now uses a pure-Java splash mechanism with minimal class loading, which is fast enough and also cross platform.

ctrueden commented 5 years ago

The Java launcher needs to know:

And ideally, the Java launcher would be able to move staged files (from the update folder) into place before launching the appropriate Java.

ctrueden commented 2 months ago

We are switching the Fiji launcher to a new one we made called Jaunch. It is much more flexible than the built-in Java jpackage standalone app bundling tool.

Jaunch does not quite eliminate all native code, but it does drastically reduce the C footprint in favor of using Kotlin for most of the heavy lifting.