How to test for Windows 7 platform?

2019-06-17 22:53发布

问题:

I have a Java app which needs to run differently when on Windows 7.

How would you check which Windows version is present? Is it enough to check for OS version 6.1?

回答1:

I've solved the same problem checking also for os.name, in a null-safe way:

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:

OS Version Numbers are rather distinct.

For example, XP is denoted with the number 5.1 and Windows 7 denoted by 6.1

The build numbers determine the updates, and service packs.

It should be rather reliable checking OS version number. but keep in mind that Java is allowed to run on Linux and Mac if Java is installed on the machine.



回答3:

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

Windows 7 = version 6.1



回答4:

Fix to dfa's answer:

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

|| instead of &&