在Java中,我们可以看到os.name知道底层操作系统名称的属性值:System.getProperty("os.name").
对于每个版本的Windows,它总是返回操作系统的确切名称:Windows XPXP,Windows VistaVista,Windows 7Seven,Windows 8.18.1等等......
问题是:我刚刚使用发布的Microsoft更新程序将Windows 8.1更新到Windows 10,看起来这个属性仍然存在Windows 8.1:
public class OSTest {
public static void main(String[] args) {
System.out.println(System.getProperty("os.name"));
}
}
Run Code Online (Sandbox Code Playgroud)
如何为此创建解决方法?而且,有人知道如果安装一个新的Windows 10副本这个问题是否仍然存在 - 也就是说,这个错误是由Microsoft自动更新程序引起的?
我正在通过检查以下注册表项来检查安装程序(由NSIS制作)中的Windows版本:
HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion"
Run Code Online (Sandbox Code Playgroud)
根据这篇文章和MSDN的这个页面,Windows 10的当前版本号应该是10.0.
我刚刚安装了Windows 10 Pro Insider预览版,注册表中给出的版本号仍为6.3,而不是10.10.
在注册表中是否有另一种可靠的方法来检测Windows 10?