sitelink1 https://blog.naver.com/spdlqjdudghl/222442055397 
sitelink2 https://mkyong.com/java/how-to-execute-s...from-java/ 
sitelink3  
sitelink4  
sitelink5  
sitelink6  

특정 경로에 있는 Git 저장소에서 git 명령어를(reset) 실행해야 했다

ProcessBuilder 에서는 directory() 함수를 통해 쉘명령어를 실행할 경로를 지정할 수 있다

 

    public static void runProcessBuilder() throws IOException {

        

        String hashcode = "dddc6831400c354f71934aa83ee92343dabe0962";

        hashcode = "b3ce21a3b94adb888ad7b059576b3c055c80f95b";

        

        String[] command = new String[] {

                "git"

                ,"reset"

                ,"--hard"

                ,"\""+hashcode+"\""

                };

        

        ProcessBuilder pb = new ProcessBuilder(command);

        pb.directory(new File("D:\\3_WORK\\3_PRODUCT_SRC\\DOMAIN\\WORK_REPOSITORY\\"));

        pb.redirectErrorStream(true);

        Process proc = pb.start();

        try (BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()))) {

            String line = null;

            StringBuffer lineSb = new StringBuffer();

            while ((line = br.readLine()) != null) {

                lineSb.append(line);

            }

            if (lineSb.length() > 0) { // Tomcat 또는 프로그램을 DOS Command 창에서 명령어

                System.out.println(lineSb); // 실행 결과를 출력

            } else { // 프로그램을 OS서비스로 등록하여 수행시 실행 결과 메세지를 취할 수 없으므로 임의로 완료 메세지 로깅

                System.out.println("nothings");

            }

        }

    }