1
votes

I have a JavaFX app that's currently assembled into an MSI installer package using WIX Toolset, bundled together with a certain JDK distributive (8u71).

The cause for the bundling is that after JDK version 8u71, there have been certificate recognition issues, and thus the app had to be made independent from Java updates - prior, WebStart was used to maintain installation and updates.

The difference now is that the MSI installer always requires administrator rights - both for installation and updating. This no longer suits the solution requirements.

The app is intended to be used under Windows 10.

So the question is: what options do I have available if I want to make updates not require admin rights? (initial installation requiring admin rights is fine)

E.g.:

  1. Is it possible to somehow make WebStart use a user's local JDK installation instead of the machine-installed Java?

  2. Can both JDK and Java App be installed in user context via an assembled installer (with WIX Toolset, or another tool)?

  3. Is there a way to update a JavaFX app without actually having to launch the same kind of MSI installer used for initial installation?

  4. Any other probable solutions?

1
I don't think 'JavaFX' apps (or Java apps) behave diffently on updates on the Microsoft platform with respect to other programs. I think you should do some general research and maybe re-ask on a more better suited place. - M. le Rutte
Thanks for the clarification! However, I would like some feedback on the other solution options with JDK bundling as well. - Eldente
If an install creates files or registry entries in locations that require admin privilege then yes, those rights are required. Windows security is not suspended just because it's an install package, and limited users cannot write to restricted locations using an install. Your only hope is to find out what is going on that requires admin privilege, assuming you've tried the install with limited user rights and it fails with security access issues. - PhilDW
Since the previous WebStart solution worked, I suppose that writing to the registry is not required to update the app. So the question remains: can I get WebStart to use a local user's JDK installation instead of the machine-wide installed Java? - Eldente

1 Answers

0
votes

I think the self-contained application packaging for JavaFX has the ability to create installers that don't require admin rights. If Wix isn't working for you, I suggest you use innosetup (the other option JavaFX provides to create windows installers). I think innosetup generates an EXE installer, not an MSI installer.

From the self contained packaging documentation, it is stated for EXE installations:

By default, the generated package has the following characteristics:

  • Admin privileges not required

Note on updates vs initial installs

You mentioned updates rather than installs in your question. I'm not aware of an updating framework for self-contained JavaFX applications, though you could research if one is available if the standard installers aren't providing the update capability you require. I'm not 100% sure on the capabilities of the standard installers (e.g. MSI/EXE installers via Wix or Innosetup) to handle updates rather than just app installs.


Note on userspace vs system wide installations

My understanding is that JavaFX allows you to choose which method (userspace or system wide) to use, at packaging time for some packaging tools (e.g. Wix or Innosetup, though I would not know which allows what options). Just read the linked documentation, it explains your options for this better than I could.