/
dinruspro
/
DinrusIDE
Обзор
Документация
Войти
/
dinruspro
/
DinrusIDE
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Java/Jdk.cpp
69 строк
2 KB
--add
Первый коммит на Гитвёрс
08 апр 2024, 09:35
08 апр 2024, 09:35
4bd652d
Код
Авторство
О чём код?
#include "Java.h" namespace Upp { #define METHOD_NAME "Jdk::" << UPP_FUNCTION_NAME << "(): " String Jdk::GetDownloadUrl() { return "https://www.azul.com/downloads/zulu-community/?package=jdk"; } Jdk::Jdk(const String& path, Host* host) : path(path) { ASSERT_(host, "Пустая ссылка на хост."); FindVersion(host); } bool Jdk::Validate() const { if(!FileExists(GetJavacPath())) return false; return true; } void Jdk::FindVersion(Host* host) { if (!Validate()) { Logw() << METHOD_NAME << "Путь к JDK неверен или файлы повреждены."; return; } StringStream ss; if (host->Execute(GetJavacPath() + " -version", ss) != 0) { Logw() << METHOD_NAME << "Не удалось узнать версию из-за неудачного выполнения команды."; return; } String output = static_cast<String>(ss); output.Replace("\n", ""); Vector<String> splitedOutput = Split(output, " "); if (splitedOutput.GetCount() != 2) { Logw() << METHOD_NAME << "Splited output is too short (" + output + ")."; return; } Vector<String> splitedVersion = Split(splitedOutput[1], "."); if (splitedVersion.GetCount() != 3) { Logw() << METHOD_NAME << "Splited version is too short (" + output + ")."; return; } int major = StrInt(splitedVersion[0]); if (major == INT_NULL) { Logw() << METHOD_NAME << "Major version conversion to int failed (" + splitedVersion[0] + ")."; return; } int minor = StrInt(splitedVersion[1]); if (minor == INT_NULL) { Logw() << METHOD_NAME << "Minor version conversion to int failed (" + splitedVersion[1] + ")."; return; } version = JavaVersion(major, minor); } }