如何在java中打开exe文件

时间:2013-11-03 19:21:09

标签: java exe

我正在尝试使用java打开一个exe文件。我不确定我想打开哪个程序,所以我以Skype为例。当我尝试这样做时,它给了我错误。

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

错误: 无法运行程序“C:\ Program”:CreateProcess error = 2,系统找不到指定的文件

4 个答案:

答案 0 :(得分:4)

试试这个:

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());

答案 1 :(得分: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();
    }

答案 2 :(得分: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代替'\'

答案 3 :(得分:1)

我尝试了这一点,并且效果很好,摘自您的示例。注意双\\

public static void main(String[] args) {
    try {
        Process p;
        p = Runtime.getRuntime().exec("C:\\Program Files\\Java\\jdk1.8.0_05\\bin\\Jconsole.exe");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}