Java 8 and prior versions have Java Web Start, which auto-updates the application when we change it. Oracle has recommended that users migrate to jlink, as that is the new Oracle technology. So far, this sounds good. This comes with a host of benefits:
- Native code on Windows, Mac and Linux
- Modularization of the code (although Proguard does this as well)
- The use of new, supported technology.
The problem: I can't find the canonical Java solution to auto-update with jlink.
One would think that Java Web Start could continue to be used, especially if one casually reads this document. Notice the fact that Java Web Start continues to be prominently listed. But there's a fly in the ointment: Oracle is deprecating Java Web Start. It's slated for removal in JDK 11. So, what's the official path forward. Failing that, is there a standard way that people proceed?
For the purposes of this question the following are out of scope:
- Paying huge amounts of money yearly to someone with an feature-packed enterprise solution. The application to be distributed is already packaged into a single jar that is smaller than 50MB.
- Forcing users to run an InstallShield style app to reinstall the new version, and then manually uninstall the old version every time an update is pushed. That's sooo 1990's.
- Porting the entire app to be a webapp, rewriting the UI and client side logic to fit in a browser and dealing with all the incompatibilities that entails. The authors of the application worked on GWT and know exactly what web browsers are capable of. Unfortunately, they also know the level of effort required.
- Allowing users to continue to run old versions of the application. That, too, is sooo 1980's. Modern apps update quickly, and supporting every version of the application ever released is not tenable. That's what my father's COBOL application had to deal with, and he didn't enjoy it. I'm hoping technology has progressed.
- Continuing to use Java Web Start. Until/unless Oracle changes its mind, Java Web Start is a doomed technology.
jlink
allows you to create self contained runtime images for deployment, but it doesn’t provide the deployment itself, not to speak of auto-update features. That’s simply a service, Oracle doesn’t offer (anymore). – Longwindedjlink
for that), which afaik has no satisfying answer, but since Stackoverflow is not a software recommendation service, broading the question would make it off-topic. So keep it as-is and hope for answers addressing it in a broader sense. I think, it’s a really interesting topic, but perhaps, it’s too early to expect solutions yet. – Longwinded