헤르메스 LIFE

Thread 를 이용한 데몬 프로그램 본문

Core Java

Thread 를 이용한 데몬 프로그램

헤르메스의날개 2020. 12. 17. 00:35
728x90

프로젝트를 진행하면서 몇 분 및 몇 초 단위로 어떤 Application을 실행시켜야할 경우가 생깁니다.

 

Thread를 공부하면서 한번 만들어 봤습니다... 참고하세요... ^^*

 

주의해야 할 점은, Runtime을 이용해서 Java 애플리케이션을 실행시키면 실행이 되는지 그 결과를 알 수 없습니다.

그래서 InputStream을 이용해서 읽어서 출력해야 합니다.

package example.threadtest;

public class ThreadTest {
 public static void main(String[] args)
 { 
  ThreadDeamon thread = new ThreadDeamon();
  thread.start();
 }
}
package example.threadtest;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ThreadDeamon extends Thread {
 public void run() {
  try {
   synchronized(this) {
    int i = 0;
    while(true) {
     System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); // 시간출력
     Thread.sleep(1000); // 1초간 멈춤.
     Runtime tr = Runtime.getRuntime();
     Process dir = tr.exec("java -cp .;e:\\workspace\\my_project example/threadtest/ExecuteFile"); 자바 App 실행

     // Runtime을 이용해서 Java 애플리케이션을 실행시키면 실행이 되는지 그 결과를 알 수 없습니다.

     // 그래서 InputStream을 이용해서 읽어서 출력해야 합니다.
     BufferedReader reader = new BufferedReader( new InputStreamReader(dir.getInputStream()));    
     String line = null;
     while( (line = reader.readLine()) != null) {
      System.out.println(line);
     }
    }
   }
  } catch(InterruptedException ie) {
   ie.printStackTrace();
  } catch(Exception e) {
   e.printStackTrace();
  }   
 }
}
package example.threadtest;

public class ExecuteFile {
 public static void main(String[] args) {
  System.out.println("Execute File ...........");
 }
}

 

ExecuteFile.java
0.00MB
ThreadDeamon.java
0.00MB
ThreadTest.java
0.00MB

728x90

'Core Java' 카테고리의 다른 글

[HttpURLConnection] jsp 파일의 실행  (0) 2020.12.17
외부프로그램 실행시키기  (0) 2020.12.17
BigDecimal타입의 사칙연산  (0) 2020.12.17
Java에서 Stored Procedure 실행  (0) 2020.12.17
jxl의 사용  (0) 2020.12.17