diff --git a/bin/WinLauncher/WinLauncher.exe b/bin/WinLauncher/WinLauncher.exe index 66b04fa1bfd8..afe000ae7459 100644 Binary files a/bin/WinLauncher/WinLauncher.exe and b/bin/WinLauncher/WinLauncher.exe differ diff --git a/bin/WinLauncher/WinLauncher64.exe b/bin/WinLauncher/WinLauncher64.exe index 12a18522deed..7dc6ef8deb5e 100644 Binary files a/bin/WinLauncher/WinLauncher64.exe and b/bin/WinLauncher/WinLauncher64.exe differ diff --git a/native/WinLauncher/WinLauncher/WinLauncher.cpp b/native/WinLauncher/WinLauncher/WinLauncher.cpp index 3249a9a1f0de..681cb46ae6aa 100644 --- a/native/WinLauncher/WinLauncher/WinLauncher.cpp +++ b/native/WinLauncher/WinLauncher/WinLauncher.cpp @@ -194,11 +194,16 @@ bool LocateJVM() return result; } - std::string jreDir = GetAdjacentDir(need64BitJRE ? "jre64":"jre"); - if (FindValidJVM(jreDir.c_str()) && Is64BitJRE(jvmPath) == need64BitJRE) - { - return true; - } + + std::vector jrePaths; + if(need64BitJRE) jrePaths.push_back(GetAdjacentDir("jre64")); + jrePaths.push_back(GetAdjacentDir("jre")); + for(std::vector::iterator it = jrePaths.begin(); it != jrePaths.end(); ++it) { + if (FindValidJVM((*it).c_str()) && Is64BitJRE(jvmPath) == need64BitJRE) + { + return true; + } + } if (FindJVMInRegistry()) {