From 097833beee4a5615ec76a4e9aa390eb9bdde4ae9 Mon Sep 17 00:00:00 2001 From: Malte Langkabel Date: Tue, 10 Dec 2019 13:30:30 +0100 Subject: [PATCH] logic: add java 9 path detector for windows (#843) --- .../java_runtime/JavaPathDetectorWindows.cpp | 12 +++++++++++- .../JreSystemLibraryPathDetector.cpp | 2 +- src/lib_gui/utility/utilityPathDetection.cpp | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/lib_gui/utility/path_detector/java_runtime/JavaPathDetectorWindows.cpp b/src/lib_gui/utility/path_detector/java_runtime/JavaPathDetectorWindows.cpp index 196a5151..c6fbbc64 100644 --- a/src/lib_gui/utility/path_detector/java_runtime/JavaPathDetectorWindows.cpp +++ b/src/lib_gui/utility/path_detector/java_runtime/JavaPathDetectorWindows.cpp @@ -5,6 +5,7 @@ #include "FilePath.h" #include "utilityApp.h" +#include "utilityString.h" JavaPathDetectorWindows::JavaPathDetectorWindows(const std::string javaVersion) : JavaPathDetector("Java " + javaVersion + " for Windows", javaVersion) @@ -20,7 +21,16 @@ std::vector JavaPathDetectorWindows::getPaths() const key += "Wow6432Node\\"; } - key += ("JavaSoft\\Java Runtime Environment\\" + m_javaVersion).c_str(); + key += "JavaSoft\\"; + + if (utility::isPrefix(std::string("1."), m_javaVersion)) + { + key += ("Java Runtime Environment\\" + m_javaVersion).c_str(); + } + else + { + key += ("JRE\\" + m_javaVersion).c_str(); + } QSettings expressKey( key, QSettings::NativeFormat); // NativeFormat means from Registry on Windows. diff --git a/src/lib_gui/utility/path_detector/jre_system_library/JreSystemLibraryPathDetector.cpp b/src/lib_gui/utility/path_detector/jre_system_library/JreSystemLibraryPathDetector.cpp index 7b869eb7..22c44eb4 100644 --- a/src/lib_gui/utility/path_detector/jre_system_library/JreSystemLibraryPathDetector.cpp +++ b/src/lib_gui/utility/path_detector/jre_system_library/JreSystemLibraryPathDetector.cpp @@ -8,7 +8,7 @@ JreSystemLibraryPathDetector::JreSystemLibraryPathDetector( std::shared_ptr javaPathDetector) - : PathDetector("JRE System Library"), m_javaPathDetector(javaPathDetector) + : PathDetector(javaPathDetector->getName() + " System Library"), m_javaPathDetector(javaPathDetector) { } diff --git a/src/lib_gui/utility/utilityPathDetection.cpp b/src/lib_gui/utility/utilityPathDetection.cpp index edd9dbd2..85fe68ee 100644 --- a/src/lib_gui/utility/utilityPathDetection.cpp +++ b/src/lib_gui/utility/utilityPathDetection.cpp @@ -32,6 +32,7 @@ std::shared_ptr utility::getJavaRuntimePathDetector() { case OS_WINDOWS: combinedDetector->addDetector(std::make_shared("1.8")); + combinedDetector->addDetector(std::make_shared("9")); break; case OS_MAC: combinedDetector->addDetector(std::make_shared("1.8")); @@ -57,6 +58,7 @@ std::shared_ptr utility::getJreSystemLibraryPathsDetector( { case OS_WINDOWS: combinedDetector->addDetector(std::make_shared("1.8")); + combinedDetector->addDetector(std::make_shared("9")); break; case OS_MAC: combinedDetector->addDetector(std::make_shared("1.8"));