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

Java 无法从Runtime.getRuntime().exec(..)启动Steam.exe,java,exec,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:\Progra

我一直试图从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关闭了

我可以通过删除
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标志运行它,但也不起作用