sitelink1 https://stackoverrun.com/ko/q/11418710 
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

TFS의 witadmin.exe 프로그램을 사용하여 WIT 파일을 import 해야 할 일이 있었다

이를 위해서는 프로그램 수행시 몇가지 파라미터를 입력해야만 하는데 해당 작업을 자동으로 수행할 자바 프로그램을 작성해보았다

 

 

import java.io.*;
public class CmdExec {
  public static void main(String argv[]) {
      
    try {

      //Process p = Runtime.getRuntime().exec("D:\\w.bat"); //배치로 만들어서 실행시

 

      String[] command = new String[] {
          "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\witadmin.exe"
      , "importwitd"
      , "/collection:http://도메인:포트번호/tfs/컬렉션명"
      , "/p:프로젝트명"
      , "/f:\"D:\\RequestProduct.xml\""};
      
      Process p = Runtime.getRuntime().exec(command); //명령 실행


      BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
      String line = null;
      while ((line = br.readLine()) != null) {
          System.out.println(line); //실행 결과 출력
      }
      
      //p.waitFor(); <- subprocess까지 종료할때까지 기다리다가 hang이 걸리는 경우가 있었다 그래서 아래와 같이 timeout을 걸어준다

      if (!p.waitFor(3, TimeUnit.SECONDS)) {

          System.out.println("Destroy");

          p.destroy();

      }

    } catch (Exception err) {
      err.printStackTrace();
    }
  }
}

 

잘 동작한다 ^^;

 

참고로 콘솔 명령어 사이의 공백은 command 배열 변수에 저장시 콤마로 구분해야 한다

예를 들어, "witadmin.exe importwitd" 명령어를 command 배열 변수에 담는다면

  String[] command = {"witadmin.exe", "importwitd"};

이런식이어야 한다

 

String[] command = {"witadmin.exe importwitd"}; 식으로 코딩해서 실행하면 아무런 동작을 하지 않는다

오류 출력도 없어서 뭐가 문제인지 혼란스러울 수 있으므로 제일 먼저 명령어 공백을 처리했는지 확인해야 한다

번호 제목 글쓴이 날짜 조회 수
246 이미지 파일의 화면사이즈와 포맷(확장자) 구하기 황제낙엽 2018.04.01 974
245 File 을 다루기 위한 유틸 클래스 file 황제낙엽 2018.02.28 759
244 상수의 데이터 타입 황제낙엽 2018.01.26 799
243 Java에서 User-Agent 파써 사용하기 황제낙엽 2017.11.20 1077
242 현재 월,일,시간,분,초 등등 가져오기 황제낙엽 2017.11.02 1439
241 날짜, 시간 문자열 값으로 Date 오브젝트로 만들기 >> SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US) 황제낙엽 2017.10.31 2314
240 시스템 속성(System Property) 클래스를 이용하여 jni 라이브러리 사용하기 황제낙엽 2017.09.22 619
239 Java 실행 옵션들 황제낙엽 2017.08.23 3964
238 HttpsURLConnection 을 사용한 SSL서버 접속 file 황제낙엽 2017.08.02 937
237 서버구동시 주기적으로 동작을 수행하는 스레드를 함께 실행하는 서블릿 황제낙엽 2017.08.02 718
236 HttpURLConnection 사용 샘플( JSP , SERVLET ) 황제낙엽 2017.08.01 1084
235 HttpURLConnection 사용하기 황제낙엽 2017.08.01 1228
234 [HttpURLConnection] POST로 파라미터 넘기기 황제낙엽 2017.08.01 1221
233 HttpURLConnection POST 방식 사용하기 황제낙엽 2017.08.01 1201
» Runtime 클래스를 이용한 윈도우 프로그램 실행 예제 황제낙엽 2017.08.01 814
231 자바 리플렉션(Java Reflection) 간단한 설명 및 사용방법 정리 file 황제낙엽 2017.07.10 623
230 Generate random numbers (Random.java) 황제낙엽 2017.07.02 1079
229 쓰레드(Thread)를 중간에 종료시키는 방법 황제낙엽 2017.03.15 5770
228 싱글톤 방식의 테스트용 Temporary Data Access Object 황제낙엽 2017.01.12 2168
227 SimpleDateFormat Symbol file 황제낙엽 2016.12.20 794