最近我在一个品牌的移动新机的64位Windows 7。但是,当我运行这段代码,得到不正确的操作系统名称不正确的操作系统名称在Java中获得
String osName = System.getProperty("os.name");
System.out.println("OS Name = " + osName);
输出谈到:
OS Name = Windows Vista
任何想法,我的代码或系统有什么问题?
在此先感谢。
最近我在一个品牌的移动新机的64位Windows 7。但是,当我运行这段代码,得到不正确的操作系统名称不正确的操作系统名称在Java中获得
String osName = System.getProperty("os.name");
System.out.println("OS Name = " + osName);
输出谈到:
OS Name = Windows Vista
任何想法,我的代码或系统有什么问题?
在此先感谢。
您可能正在使用旧版本的Java。因为这是一个已知的bug(bug_id = 6819886),已在新版本中修复。 Kindly read this for further details。
的情况下,可能的解决方法对于这一点,你无法升级您的Java版本:
String osName = System.getProperty("os.name");
if (osName.equals("Windows XP") || osName.equals("Windows Vista"))
{
//do something and remember to put in all the names in the above if list. I just added two for example,it will have to include all like Windows NT,ME,95,etc.
}
else
{
//the block that will be accessible for Windows 7
}
使用JAVA-6,我试过它的工作正常,否则你的Windows使用Vista模式对待JVM。
最近出现了同样的问题。正如bug 6819886评估说明所述,您可以检查os.version属性以区分Windows 7和Windows Vista在这种情况下。
版本的Windows 7是6.1和Windows Vista的是6
String osVersion = System.getProperty("os.version");
if("6.1".equals(osVersion)){
System.out.println("OS is Windows 7");
}
这样你就不必升级到最新的Java只是为了使这项工作。
也许Windows在“Vista模式”(兼容模式)下运行您的JVM? – Hassan
由于我们的项目依赖关系,我正在使用java.version = 1.5.0_16。 – Kishore