2017-01-07 2 views
0

Java 프로그램 내부에서 Steam을 시작하려고했습니다.Runtime.getRuntime()에서 Steam.exe를 시작할 수 없습니다. exec (..)

나는 이것을 시도 :

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 closing이 표시됩니다.

답변

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

일을하지만 내가 다른 시간을 요구하는 아주 작은 문제로 달렸다. 그 작은 문제는 스팀을 닫지 않으면 프로세스가 다음 명령을 실행하지 않는다는 것입니다. cmd.exe/c 플래그를 사용하여 실행하려고했지만 그 중 하나가 작동하지 않았습니다.