gpt4 book ai didi

java - System.getProperty ("os.name") 在最新的 Windows 操作系统中返回什么

转载 作者:IT老高 更新时间:2023-10-28 20:53:19 25 4
gpt4 key购买 nike

我的一些代码在 x64 中失败,我开始挖掘,这是由于一些代码通过 Runtime.getRuntime().exec()...调用 native 内容...

但是这段代码可能有几年的历史了,它没有考虑到较新的操作系统,有些代码看起来像这样:

String osName = System.getProperty("os.name");
if (osName.equals("Windows NT") || osName.equals("Windows 2000") || osName.equals("Windows XP")) {
cmd = new String[3];
cmd[0] = WINDOWS_NT_2000_COMMAND_1;
cmd[1] = WINDOWS_NT_2000_COMMAND_2;
cmd[2] = command;
} else if (osName.equals("Windows 95") || osName.equals("Windows 98") || osName.equalsIgnoreCase("Windows ME")) {
cmd = new String[3];
cmd[0] = WINDOWS_9X_ME_COMMAND_1;
cmd[1] = WINDOWS_9X_ME_COMMAND_2;
cmd[2] = command;

我想为所有新操作系统(w2008、Windows 7、...)修复此问题,但我无法访问各种主机,我不想安装在 VM 中只是为了查看值(value),有人知道某处的一些 list 吗?还没找到。

编辑:我需要:Windows 7、Windows 2003、Windows 2008、Windows 2008R2另外,我不是 1.6u18 所以不用担心一些人提到的错误。

最佳答案

虽然这不是一个完整的解决方案,但您可以获取一个 32 位 JDK 并运行一个简单的代码打印 os.nameos.version 具有不同的兼容性设置.

这是 Windows 8.1 框上不同 JDK 报告的 os.name/os.version 值:

╔═════════════════╤════════════╤════════════╤════════════╤═══════════════╤═══════════════╤══════════════════════╤══════════════════════╗║ Java/OS version │ Windows 95 │ Windows 98 │ Windows XP │ Windows Vista │ Windows 7     │ Windows 8            │ Windows 8.1          ║╟─────────────────┼────────────┼────────────┼────────────┼───────────────┼───────────────┼──────────────────────┼──────────────────────╢║ 1.4.2           │ Windows 95 │ Windows 98 │ Windows XP │ Windows Vista │ Windows Vista │ Windows Vista        │ Windows Vista        ║║                 │        4.0 │       4.10 │        5.1 │           6.0 │           6.1 │                  6.2 │                  6.2 ║║ 1.5.0           │ Windows 95 │ Windows 98 │ Windows XP │ Windows Vista │ Windows 7     │ Windows NT (unknown) │ Windows NT (unknown) ║║                 │        4.0 │       4.10 │        5.1 │           6.0 │           6.1 │                  6.2 │                  6.2 ║║ 1.6.0           │ Windows 95 │ Windows 98 │ Windows XP │ Windows Vista │ Windows 7     │ Windows 8            │ Windows 8            ║║                 │        4.0 │       4.10 │        5.1 │           6.0 │           6.1 │                  6.2 │                  6.2 ║║ 1.7.0           │ Windows 95 │ Windows 98 │ Windows XP │ Windows Vista │ Windows 7     │ Windows 8            │ Windows 8.1          ║║                 │        4.0 │       4.10 │        5.1 │           6.0 │           6.1 │                  6.2 │                  6.3 ║║ 1.8.0           │ Windows 95 │ Windows 98 │ Windows XP │ Windows Vista │ Windows 7     │ Windows 8            │ Windows 8.1          ║║                 │        4.0 │       4.10 │        5.1 │           6.0 │           6.1 │                  6.2 │                  6.3 ║╚═════════════════╧════════════╧════════════╧════════════╧═══════════════╧═══════════════╧══════════════════════╧══════════════════════╝

关于java - System.getProperty ("os.name") 在最新的 Windows 操作系统中返回什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com