We are about to upgrade from 7.9.4 to 7.9.11, which now contains a bundled JRE. We have to support both 32-bit and 64-bit clients, but the bundled JRE only works with 64-bit machines, so I was planning to set this up to use the Java version installed on the system and ignore the bundled JRE entirely.
However, on some systems it appears that this option does not work - the client launcher still uses the bundled JRE even though I’ve unticked “Use bundled JRE” or run the desktop shortcut with “useBundledJre=false”.
- 64-bit Linux works correctly
- 64-bit Windows 7 works correctly
- 32-bit Windows 7 (Bundled JRE not supported)
- 64-bit Windows Server 2012 always uses bundled JRE, despite having Java installed and unticking “Use bundled JRE”
The clientlauncher.log file shows the following:
# With "Use bundled JRE" ticked
Using java executable C:\Users\...\AppData\Roaming\Inductive Automation\Client launcher\jre\bin\java.exe
# With "Use bundled JRE" unticked
Using java executable java.exe
Yet somehow it still ends up using the bundled JRE.
Opening command prompt and typing “java -version” shows the version info for the system installed Oracle Java.
Any idea what the issue is here?
For some reason the default install location of Java isn’t being found and we always fall back to the internal version when this happens. We are looking into why this is happening, but to get around the issue adding a JAVA_HOME environment variable as a System Variable to your Windows installation will resolve the issue. This environment variable will need to point to the installation directory for Java (ex. C:\Program Files\Java\jre1.8.0_191).
As a point of principle I would really like you to change this behaviour. If I explicitly asked for a particular option I expect to get a clear and helpful error message if my wishes cannot be fulfilled, not for it to silently do something else.
On a similar note, we’ve also seen the reverse issue on Linux, where the client launcher cannot find its own bundled Java because it’s not changing the working directory properly. In this case, it silently falls back to using the system Java. Again, if you can’t do what we’re all expecting, show a clear and helpful error message explaining what went wrong and why. Please don’t just silently do something else - it’s very confusing.
@ggross, this is also happening with the 7.9.12 client launcher. Please can we get this fixed as a matter of urgency.
@ggross, if I delete or rename the
Client Launcher/jre folder it runs just fine using the system Java. So the client launcher is clearly doing something very wrong here.