2012-08-29 54 views
4

我有100個文件名爲「1.exe」,「2.exe」,「3.exe」,...,「100.exe」 我想從用戶作爲1,2,3,...或100並運行相應的exe文件。 例如,如果用戶輸入45,我將運行文件「45.exe」 我不想使用ifs或開關。 任何人都可以幫助我。輸入並匹配相應的文件

+0

爲什麼你不想使用開關盒 –

+0

這是非常小的信息,因此很難回答這個問題。但是,如何使用地圖? – Thomas

+0

爲什麼你有100個exe的編號?我假設你不希望用戶能夠運行其他程序? –

回答

2
Runtime.getRuntime().exec(input + ".exe").waitFor(); 

會工作。

13

如果輸入總是等於你的前男友的文件名,你可以這樣做:

if(isInputNumberBetween1And100()) 
    Runtime.getRuntime().exec(input + ".exe"); 
+1

+1一起使用。它不能變得更簡單! – Jayan

+1

出於安全原因,您可能想要清理您的輸入(測試它僅包含1到100之間的數字) – jolivier

+0

這就是我想要的。謝謝! –

1

我的Java是有些生疏了,原諒我,但是這應該給你的想法:

形成以做這樣的字符串:

String number = "45"; // or whatever user inputs 
String suffix = ".exe"; 
String file = number + suffix; 

然後,一旦你有字符串,用它來運行進程:

Runtime rt = Runtime.getRuntime(); 
Process p = rt.exec(file); 

而當你使用過程中完成的,銷燬它:

p.destroy(); 
+1

如果你可以使用StringBuilder,請不要使用StringBuffer http://vanillajava.blogspot.co.uk/2012/08/java-memes-which-refuse-to-die.html –

+0

如果你不寫一個循環而是做一個明顯的補充,編譯器會爲你優化它 - 無論如何'''沒問題,並且會自動從潛在的未來改進中受益。 –

+0

再一次,我的java有點生疏。感謝您的反饋!! –

1
// getInputFromUser() is your function with validation 
String processName = getInputFromUser()+".exe"; 
Runtime.getRuntime().exec(processName); 
2

如果他們在同一個文件夾,您可以使用也可以使用java.nio.file.Paths來以解決這些問題:如果你想等待它

Runtime.getRuntime().exec(Paths.get(getNumberInput() + ".exe").toString()); 
相關問題