无法从Runtime.getRuntime()。exec(..)启动Steam.exe

时间:2017-01-07 04:16:30

标签: java exec

我一直在尝试从Java程序中启动Steam。

我试过这个:

StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec("cmd.exe start \"\" \"C:/Program Files (x86)/Steam/Steam.exe\" -login myid mypassword"); //the string amounts to start "" "C:\Program Files (x86)\Steam\Steam.exe" -login myid mypassword
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
    output.append(line + "\n");
}
System.out.println(output);

这无济于事。我甚至没有任何错误。我的鼠标变成了加载鼠标,好像有什么东西在后台加载一样。但事实上没有任何反应。

虽然,当我尝试运行诸如taskkill /F /IM Steam.exe之类的命令时,它们工作得很好,实际上我看到Steam关闭了。

1 个答案:

答案 0 :(得分:0)

我可以通过删除start来运行它。

Runtime.getRuntime().exec("cmd.exe \"C:/Program Files (x86)/Steam/Steam.exe\" -login myid mypassword");

即使删除cmd.exe也能正常工作

Runtime.getRuntime().exec("\"C:/Program Files (x86)/Steam/Steam.exe\" -login myid mypassword");

但我遇到了一个很小的问题,我会在其他时间问这个问题。这个小问题是除非我关闭Steam,否则进程不会执行下一条指令。我尝试用cmd.exe / c标志运行它,但这也不起作用。