8273229: Update OS detection code to recognize Windows Server 2022

Reviewed-by: alanb, dholmes
This commit is contained in:
Matthias Baesken 2021-09-02 11:22:49 +00:00
parent 0c1b16b75a
commit c2e015c3c1
2 changed files with 14 additions and 5 deletions

View file

@ -1866,9 +1866,13 @@ void os::win32::print_windows_version(outputStream* st) {
if (is_workstation) { if (is_workstation) {
st->print("10"); st->print("10");
} else { } else {
// distinguish Windows Server 2016 and 2019 by build number // distinguish Windows Server by build number
// Windows server 2019 GA 10/2018 build number is 17763 // - 2016 GA 10/2016 build: 14393
if (build_number > 17762) { // - 2019 GA 11/2018 build: 17763
// - 2022 GA 08/2021 build: 20348
if (build_number > 20347) {
st->print("Server 2022");
} else if (build_number > 17762) {
st->print("Server 2019"); st->print("Server 2019");
} else { } else {
st->print("Server 2016"); st->print("Server 2016");

View file

@ -389,7 +389,7 @@ GetJavaProperties(JNIEnv* env)
GetVersionEx((OSVERSIONINFO *) &ver); GetVersionEx((OSVERSIONINFO *) &ver);
majorVersion = ver.dwMajorVersion; majorVersion = ver.dwMajorVersion;
minorVersion = ver.dwMinorVersion; minorVersion = ver.dwMinorVersion;
/* distinguish Windows Server 2016 and 2019 by build number */ /* distinguish Windows Server 2016+ by build number */
buildNumber = ver.dwBuildNumber; buildNumber = ver.dwBuildNumber;
is_workstation = (ver.wProductType == VER_NT_WORKSTATION); is_workstation = (ver.wProductType == VER_NT_WORKSTATION);
platformId = ver.dwPlatformId; platformId = ver.dwPlatformId;
@ -474,6 +474,8 @@ GetJavaProperties(JNIEnv* env)
* Windows Server 2016 10 0 (!VER_NT_WORKSTATION) * Windows Server 2016 10 0 (!VER_NT_WORKSTATION)
* Windows Server 2019 10 0 (!VER_NT_WORKSTATION) * Windows Server 2019 10 0 (!VER_NT_WORKSTATION)
* where (buildNumber > 17762) * where (buildNumber > 17762)
* Windows Server 2022 10 0 (!VER_NT_WORKSTATION)
* where (buildNumber > 20347)
* *
* This mapping will presumably be augmented as new Windows * This mapping will presumably be augmented as new Windows
* versions are released. * versions are released.
@ -549,7 +551,10 @@ GetJavaProperties(JNIEnv* env)
switch (minorVersion) { switch (minorVersion) {
case 0: case 0:
/* Windows server 2019 GA 10/2018 build number is 17763 */ /* Windows server 2019 GA 10/2018 build number is 17763 */
if (buildNumber > 17762) { /* Windows server 2022 build number is 20348 */
if (buildNumber > 20347) {
sprops.os_name = "Windows Server 2022";
} else if (buildNumber > 17676) {
sprops.os_name = "Windows Server 2019"; sprops.os_name = "Windows Server 2019";
} else { } else {
sprops.os_name = "Windows Server 2016"; sprops.os_name = "Windows Server 2016";