jgnash
jgnash copied to clipboard
Migrate to Java Module System
Have you considered doing this? Will you consider it? I might be willing to help.
PR #87 and PR #88 are ready to merge and a start on this work. PR #89 is Work-in-progress towards a minimally modular app.
The biggest hurdle is simply building for macOS and not having a machine, and virtual machine emulation with JavaFX don't mix either.
When jlink is mainstream, I think it's viable and best. I've seen too many users that struggle to handle a basic Java installation and this would solve it.
The biggest hurdle is simply building for macOS and not having a machine,
I'm hoping we can get a macOS build using CI. I've never done this before (all my CI builds have been Linux, Android or cross-platform JAR files)
and virtual machine emulation with JavaFX don't mix either.
I had good luck running JavaFX apps on Ubuntu in VirtualBox on macOS. I even was able to do QR code reading using the MacBook Pro webcam.
When jlink is mainstream, I think it's viable and best.
I agree. And I think that time is just about here. @siordache, the author of the Badass JLink/Runtime plugins has been very responsive and I've had good luck with his JLink plugin. It looks like I"m going to have to open a few issues with the Runtime plugin, but they are issues that he has already fixed for the JLink one.
I've seen too many users that struggle to handle a basic Java installation and this would solve it.
I agree. This has been true of Java desktop apps for 20 years. It looks like it is finally being solved!
So, to be clear this issue is about migrating to JPMS modules and is (mostly) a separate decision from using jlink
or jpackage
. The Badass Runtime plugin (in theory, at least) allows you to use jlink
and jpackage
on non-modular apps. I made a quick stab (see #89 ) at making jGNash modular, but decided to put it on ice for now and try using the Badass Runtime plugin to build native apps without a JPMS migration.
If you are willing to work on a JPMS migration in the near future, we should use the Badass JLink plugin instead.