2013-11-03 93 views
2

我想用java打開一個exe文件。我不確定我想打開哪個程序,所以我以Skype爲例。當我嘗試這樣做時,它會給我帶來錯誤。如何在java中打開一個exe文件

try { 
      Process p = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Skype\\Phone\\Skype"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

錯誤: 不能運行程序「C:\程序」:CreateProcess的錯誤= 2,系統找不到指定的文件

+5

請張貼的錯誤消息。 –

+0

我在編輯中添加了錯誤。 – user2947797

+0

該路徑不能錯,你檢查對嗎? –

回答

1

您使用的是Windows,所以你必須包括擴展名.exe

try { 
      Process p = Runtime.getRuntime().exec("C:/Program Files (x86)/Skype/Phone/Skype.exe"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

也許使用File.separator,而不是 '\'

+0

你不需要爲.exe或.bat文件添加擴展名 –

3

你必須使用一個字符串數組,改變

try { 
     Process p = Runtime.getRuntime().exec(new String[] {"C:\\Program Files (x86)\\Notepad++\\notepad++.exe"}); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

是的,這是解決方案,+1 –

+0

空格應該用'/'而不是普通轉義字符'''''轉義嗎? – ajp15243

+0

該程序正在讀取文件路徑中的「/」 – user2947797

3

試試這個:

String path = "/path/to/my_app.exe"; 
File file = new File(path); 
if (! file.exists()) { 
    throw new IllegalArgumentException("The file " + path + " does not exist"); 
} 
Process p = Runtime.getRuntime().exec(file.getAbsolutePath());