我正在尝试使用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,系统找不到指定的文件
答案 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();
}
}