2010-02-16 108 views
7

我有一个Java应用程序,需要在Windows 7上以不同的方式运行。如何测试Windows 7平台?

您将如何检查Windows版本是否存在?是否足以检查操作系统版本6.1?

+0

感谢您的答案!我也想知道在下一个服务包之后版本号会是什么样子 - 6.1.1还是什么?如果是这样,这不是一个简单的双倍... – paul 2010-02-16 13:15:01

+2

如果你需要检查Windows版本,你可能从错误的角度攻击你的问题。你试图达到什么目标? – 2010-05-09 19:21:54

+0

@ So/ren - 只是PC部门想要更改新(Win7)发布的默认数据存储路径。我将不得不使用单独的路径。我想我可以请求一个环境变量,但现在已经太晚了...... – paul 2010-05-10 07:50:42

回答

5

我已经解决了同样的问题也检查os.name,在一个空安全的方式:

public boolean runningOnWindows7() { 
    String osName = System.getProperty("os.name"); 
    String osVersion = System.getProperty("os.version"); 
    return "Windows 7".equals(osName) && "6.1".equals(osVersion); 
} 
2

操作系统版本号码相当不同。

例如,XP表示为用数字5.1和Windows 7 6.1

的版本号确定的更新,和服务包来表示。

检查操作系统版本号应该是相当可靠的。但请记住,如果Java安装在机器上,则Java可以在Linux和Mac上运行。

2
System.getProperty("os.name") 
System.getProperty("os.version") 

的Windows 7版本= 6.1

1

,固定为DFA的回答:

public boolean runningOnWindows7() { 
    String osName = System.getProperty("os.name"); 
    String osVersion = System.getProperty("os.version"); 
    return "Windows 7".equals(osName) || "6.1".equals(osVersion); 
} 

||而不是& &