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"}; 식으로 코딩해서 실행하면 아무런 동작을 하지 않는다

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

번호 제목 글쓴이 날짜 조회 수
243 [HttpURLConnection] POST로 파라미터 넘기기 황제낙엽 2017.08.01 873
242 HttpURLConnection POST 방식 사용하기 황제낙엽 2017.08.01 798
» Runtime 클래스를 이용한 윈도우 프로그램 실행 예제 황제낙엽 2017.08.01 413
240 JSON Util (JSON 을 다루기 위해 직접 작성한 유틸 클래스) file 황제낙엽 2017.07.10 819
239 자바 리플렉션(Java Reflection) 간단한 설명 및 사용방법 정리 file 황제낙엽 2017.07.10 498
238 Generate random numbers (Random.java) 황제낙엽 2017.07.02 839
237 쓰레드(Thread)를 중간에 종료시키는 방법 황제낙엽 2017.03.15 5516
236 JSON 라이브러리(API) 종류 황제낙엽 2017.01.18 713
235 [JSON기초04] 자바 JSON 데이터에서 KEY 값 알아오기 (TIP) 황제낙엽 2017.01.18 7217
234 [JSON기초03] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 파싱 황제낙엽 2017.01.18 908
233 [JSON기초02] 자바 JSON Google Simple JSON을 이용한 간단한 JSON DATA 생성 황제낙엽 2017.01.18 462
232 [JSON기초01] JSON이란? XML이란? JSON 개념, XML 개념 설명 황제낙엽 2017.01.18 689
231 싱글톤 방식의 테스트용 Temporary Data Access Object 황제낙엽 2017.01.12 1920
230 SimpleDateFormat Symbol file 황제낙엽 2016.12.20 461
229 JSON-lib Java Library file 황제낙엽 2013.04.09 460
228 JSP 파일에서 getOutputStream() has already been called for this response 에러 황제낙엽 2013.04.24 11907
227 servlet 에서의 json 한글처리 황제낙엽 2013.04.23 1854
226 -file.encoding의 역할 (다국어, 한국어) 황제낙엽 2013.04.10 549
225 [The type HttpUtils is deprecated] javax.servlet.http.HttpUtils 황제낙엽 2013.03.20 569
224 com.oreilly.servlet.multipart 를 이용한 파일 업로드 file 황제낙엽 2013.03.19 443