我的一些代码在x64上失效了,我开始深入挖掘,发现这是由于一些通过Runtime.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, ...)解决这个问题,但我没有访问每种类型主机的权限,也不想安装虚拟机来查看该值,是否有人知道某个列表的存在?目前为止我还没有找到。
编辑:我需要的是:Windows 7、Windows 2003、Windows 2008、Windows 2008R2。此外,我没有使用1.6u18,所以不用担心一些人提到的错误。