2013-06-12 7 views
0

내가 cmd를 (명령 행)를 실행하고 자바에서 이런 식으로 내 배치 파일을 실행 (여러 번에 인수 여러 명령) 실행 : 그것은 성공적으로 일하는자바 : cmd를 명령

final String cmd = "cmd /c C: && dir && cd C:\MyApp\Maxi && dir && C:\MayApp\Maxi\deploy.bat"; 

try { 


      Process process = Runtime.getRuntime().exec(cmd); 

      final InputStream in = process.getInputStream(); 

      int ch; 

      while((ch = in.read()) != -1) { 
       System.out.print((char)ch); 
      } 
     } catch (IOException e) { 
      System.out.println("IOException on CMD executing statement"); 
      e.printStackTrace(); 
     } 

을,하지만 난 수정 배치 파일 및 일부 인수를 추가, 그래서 나는이 시도 그래서 배치 파일에 이름을 통과해야 :

final String cmd = "cmd /c C: && dir && cd C:\MyApp\Maxi && dir && C:\MayApp\Maxi\deploy.bat Name1"; 

try { 


      Process process = Runtime.getRuntime().exec(cmd); 

      final InputStream in = process.getInputStream(); 

      int ch; 

      while((ch = in.read()) != -1) { 
       System.out.print((char)ch); 
      } 
     } catch (IOException e) { 
      System.out.println("IOException on CMD executing statement"); 
      e.printStackTrace(); 
     } 

하지만 (나는 인자로 'NAME1 "를 보내)는 현재 작동하지 않는 및 명령이 아닙니다 실행. "dir"명령 출력 만받습니다.

아무도 도와 줄 수 있습니까?

참고 : 명령이 CMD에서 성공적으로 실행되었지만 java에서 작동하지 않습니다.

답변

0

왜 한 명령에서 여러 작업을 수행 하시겠습니까? 예 : C : \, dir로 변경 한 다음 실행 하시겠습니까?

이러한 모든 작업을 하나의 배치 파일에 쉽게 적용 할 수 있습니다.

이렇게하면 일부 디렉토리 구조가 변경 될 경우 다시 코드를 컴파일하지 않아도됩니다.

+0

디렉토리 이름이 내 코드에서 변수로 매개 변수화 되었기 때문에 배치 파일을 호출하기 전에 커서를 특정 디렉토리로 이동해야합니다. 이런 식으로 일할 것이라고 생각하십니까? –

+0

먼저 DIR이 필요하지 않습니다. 둘째, 큰 따옴표를 제공하십시오. 예 : && "C : \\ MayApp \\ Maxi \\ deploy.bat" "Name1" –

+0

"DIR"을 사용하여 커서가 움직이고 출력이 있는지 확인합니다. 그리고 고맙습니다. –