[JAVA] Java Application Windows Service 등록법

일반적으로 Windows 에서의 Java Application은 Command Console을 사용하여 구동된다.


이 방식은 아래와 같은 단점을 가지고 있다.

1. 사용자 실수로 인해 Command Console에 Mouse Click이 발생하면 Application이 Hold됨.
2. 사용자가 Logout하면 해당 Application이 종료됨.
3. 특별히 제약이 없는 경우 터미널 서버나 원격 데스크탑 Application을 사용하여 같은 Application을 각 User별로 계속 구동할 수 있음.

이런 단점을 극복하기 위해 Unix에서는 Background Process로 구동시키면 되지만, Windows는 그 태생이 End User를 위한 DeskTop이기에 그 개념이 없다.

그와 유사한 개념이 Windows Service이다.

그러나 애석하게도 현재 JDK는 Windows Service를 사용하는 API를 제공하고 있지는 않다.

그로 인해 Apache나 InstallAnywhere등의 Application 벤더들은 그들만의 방법으로 Service등록을 가능하게 해서 사용하고 있는 실정이다.

지금 제시할 방법은 이러한 Java Application을 Windows Service로 등록하는 간단한 방법이다.

프로젝트에 적용중인 모듈에 적용하기 위해 여러자료를 찾다 발견한 매우 간단한 방법이다.

지금까지 제가 배포한 모듈의 경우 모두 이 방법을 사용해 서비스에 등록했다.

방법은 다음과 같다.

JavaService.exe 에 구동 Argument로 설정값을 넘겨주면 서비스 등록이 완료되게 된다.

실제 사용은 아래의 방법을 따른다.

1. JavaService.exe를 구한다.

   
http://forge.objectweb.org/projects/javaservice/ 
2. 서비스 등록용 batch파일을 만든다. 아래는 필자가 사용하는 파일의 예이다.
C:JavaService -install MyApp %JAVA_HOME%jreinserverjvm.dll -Djava.class.path=.;C:MyAppclasses -start MyApp.StartApp -params INSTALL_DIR=C:MyAppr -out C:MyApplogsstdout.log -err C:MyApplogsstderr.log -auto

3. 서비스 해지용 batch파일을 만든다. 아래는 필자가 사용하는 파일의 예이다.
C:JavaService -uninstall MyApp

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.