2012-10-17 2 views
1

안녕하세요 여러분, 내가 자바 파일을 만들었습니다. 자바 서비스를 시작하고 멈추고 restarring하는 코드를 작성했습니다. 로그 파일을 만들고 출력을 쓰고 싶습니다. 하나라도 알고 있다면 윈도우 서비스의 콘솔로 제안 을주세요 내가이 Log4J를하다 달성을 stoping 서비스 아마자바를 사용하여 서비스를 시작하는 동안 로그 파일을 작성하는 방법

 public static void stopService(String serviceName) throws IOException, 
     InterruptedException { 

    String executeCmd = "cmd /c net stop \"" + serviceName + "\""; 
    Process runtimeProcess = Runtime.getRuntime().exec(executeCmd); 
    int processComplete = runtimeProcess.waitFor(); 

    System.out.println("processComplete: " + processComplete); 

    if (processComplete == 1) {// if values equal 1 process failed 
     System.out.println("Service failed"); 
    } 

    else if (processComplete == 0) { 
     System.out.println("Service Success"); 
    } 

} 

답변

0

가장 좋은 해결책은 http://www.vogella.com/articles/Logging/article.html 자습서에서 좀 로깅 API를 사용하는 것입니다. 또는 다른 간단한 옵션은 명령을 실행하는 출력을 일부 텍스트 파일로 리디렉션하는 것입니다. 명령을 변경하십시오.

String executeCmd = "cmd /c net stop \" + serviceName + "\"+" >> "+ fileName". 이 작업을 수행 할 수있는 명령의 출력을 얻기 위하여

+0

보다 Q 나를 위해 노력하고 있습니다. – raju

1

위한 가장 좋은 방법은 코드를 사용했다. 그것이 싫은 것처럼 보일 수 있기 전에 그것을 사용하지 않았다면, 거기에서 체리를 골라야 할 좋은 튜토리얼이 많이 있습니다. LogFactory를 클래스 정의에 넣은 다음 log.info.println ("service starting")과 같은 줄을 띄웁니다. 다른 키워드는 FileAppender입니다. (죄송합니다 더 나은 참조, 내 전화에서 쓰기!)

0

:

String lineSeparator = System.getProperty("line.separator"); 
    stderr = runtimeProcess.getErrorStream(); 
    stdout = runtimeProcess.getInputStream(); 


    // clean up if any output in stdout 
    BufferedReader brCleanUp = 
      new BufferedReader(new InputStreamReader(stdout)); 
    StringBuilder output = new StringBuilder(); 
    String line; 
    while ((line = brCleanUp.readLine()) != null) { 
     output.append(line).append(lineSeparator); 
    } 
    brCleanUp.close(); 

    // clean up if any output in stderr 
    brCleanUp = 
      new BufferedReader(new InputStreamReader(stderr)); 
    StringBuilder error = new StringBuilder(); 
    while ((line = brCleanUp.readLine()) != null) { 
     error.append(line).append(lineSeparator); 
    } 
    brCleanUp.close(); 

를 그리고 이제 출력 및 오류 문자열에 당신은 당신이 실행 프로세스의 "표준 출력"과 "표준 오류"가.

관련 문제