2010-02-16 59 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); 
} 

||而不是& &