我的一些代碼在x64中失敗了,我開始挖掘,這是由於一些通過Runtime.getRuntime()調用本地東西的代碼。 EXEC()...System.getProperty(「os.name」)在最新的Windows操作系統中返回什麼
但這種代碼可能有些久遠,但它沒有考慮到新的操作系統,以及一些代碼看起來是這樣的:
String osName = System.getProperty("os.name");
if (osName.equals("Windows NT") || osName.equals("Windows 2000") || osName.equals("Windows XP")) {
cmd = new String[3];
cmd[0] = WINDOWS_NT_2000_COMMAND_1;
cmd[1] = WINDOWS_NT_2000_COMMAND_2;
cmd[2] = command;
} else if (osName.equals("Windows 95") || osName.equals("Windows 98") || osName.equalsIgnoreCase("Windows ME")) {
cmd = new String[3];
cmd[0] = WINDOWS_9X_ME_COMMAND_1;
cmd[1] = WINDOWS_9X_ME_COMMAND_2;
cmd[2] = command;
我想解決這個問題對於所有新的操作系統(w2008,windows 7,...),但我沒有訪問每種主機,我不想安裝在虛擬機中只是爲了看到價值,有沒有人知道一些列表某處?還沒有找到。編輯:我會需要:Windows 7,Windows 2003中,Windows 2008中,Windows 2008R2 另外,我不是1.6u18所以不擔心一些傢伙提到的錯誤。
您可能對此問題感興趣:http://stackoverflow.com/questions/1803075/crowdsourcing-a-complete-list-of-common-java-system-properties-and-known-values不幸的是,我避難沒有時間發佈我的發現作爲一個合適的開源項目雖然:( – sfussenegger
這不是一個答案,但這就是爲什麼你總是應該*有一個默認情況。 –
對C. Ross來說,還有一個聲明,但無論如何它失敗了,因爲它默認認爲它的一個linux – Persimmonium