Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue while installing on 32 bit Windows 7 machines #28

Open
imvinayshetty opened this issue May 6, 2020 · 10 comments
Open

Issue while installing on 32 bit Windows 7 machines #28

imvinayshetty opened this issue May 6, 2020 · 10 comments

Comments

@imvinayshetty
Copy link

Unable to install the .msi files provided on 32 bit machines. Getting the below error as in screenshot. I think it needs to re-created seperately for 32 bit machines.

image

@ylexus
Copy link
Owner

ylexus commented May 6, 2020

It may not be possible to support 32 but with the libraries that I depend on. Also I’ll need to install 32 bit windows virtual machine. I’ll investigate this in the nearest few days.

@ylexus
Copy link
Owner

ylexus commented May 6, 2020

Making it work on 32 bit is very involved.

  1. jdk14 jpackage creates a 32 bit exe, but the wrong (64 bit?) msi
  2. there is no official openjfx 14 that includes 32 bit native libraries
  3. I suspect gax-rpc, that uses native libraries too, may miss 32 bit ones

So for now this is on hold.

@imvinayshetty
Copy link
Author

Can you please let me know how are you creating the installers? I mean I can research from my end too.

@ylexus
Copy link
Owner

ylexus commented May 7, 2020

Packaging is not the only problem, as I mentioned above.
The app is written in java and is complied under jdk14. It bundles openjdk 14. I am using a tool called jpackage from jdk14. It does all the bundling, creates the app exe and bundles it and all the other resources into the msi installer. Jpackage uses wixtools to do the packaging. What I found is that, if built on Windows 7 32 bit, the exe it creates is 32 bit, but the msi it creates fails with the error you mentioned.

However, even if I ignore the msi problem, the app itself won’t start on 32 bit. openjfx, the UI library that I use, fails attempting to load 64 bit native dlls. Looks like openjfx does not provide 32 native libraries.

@ylexus
Copy link
Owner

ylexus commented May 9, 2020

Tried to fix the problem with openjfx by using Full version of Liberica JDK which includes JavaFX for 32 bit Windows: https://bell-sw.com/pages/java-14/. While the app now starts, the WebView component (used to show Google Login screen) does not function properly and crashes the JVM with access violation.

@imvinayshetty
Copy link
Author

imvinayshetty commented May 10, 2020

Please check this.. if this helps as many users have created their own form of 32 bit libraries for openjfx.

javafxports/openjdk-jfx#376

@ylexus
Copy link
Owner

ylexus commented May 10, 2020

@imvinayshetty I’ve seen this, as this is the page that comes up on google search. This is where I found Liberica JDK I mentioned in the previous comment. Unfortunately, all the leads there are not so useful. The only other thing to try is to build openjfx myself, but seems like this is very involved (according to the comments on that issue). I may try it when I find time. You are very welcome to help here.

This will still leave the jpackage thing unresolved. But I hope that I may somehow be able to manually build that msi. Do you have experience in building msi? I am hoping to capture what jpackage runs when it creates the msi (by running gradle with --debug) and then understand why it creates the 64 bit msi, change the cmd line to build the 32 bit one and finally make Gradle call that other command line directly.

@imvinayshetty
Copy link
Author

I do not have experience related to this but I surely can look into it. will keep you posted.

@ylexus
Copy link
Owner

ylexus commented Aug 12, 2021

With "full" Windows 32 bit Liberica JDK https://bell-sw.com/pages/downloads/#/java-16-current Jiotty runs successfully, however the webkit-based internal browser fails to work for Google Login. Now we have a simple system browser based login option, so using that for Windows 7 32 bit. This is good progress.
However, there its a bug in JDK jpackage https://bugs.openjdk.java.net/browse/JDK-8258755 that prevents proper 32 bit exe from being created. This bug is only fixed in JDK 17, for which Liberica has no builds yet. Putting this on hold until they release it.

If feeling enthusiastic, you cal still run it now without creating an exe by following the "compile and run locally" guide in README.

@ylexus
Copy link
Owner

ylexus commented Oct 11, 2021

Liberica JDK released JDK 17, however there's no JDK 17 compatible gradle yet. The wait continues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants