System.getProperty(“os.name”) 在最新的 Windows 操作系统中返回什么
我的一些代码在x64中失败了,我开始挖掘,这是由于一些代码通过Runst.getRuntime().exec()调用本机内容...
但是这段代码可能已经有几年的历史了,它没有考虑到较新的操作系统,有些代码看起来像这样:
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中安装只是为了查看值,有人知道某个地方的某个列表吗?还没有找到任何东西。
编辑:我需要:Windows 7,Windows 2003,Windows 2008,Windows 2008R2 另外,我不是1.6u18,所以不用担心一些人提到的错误。