JavaService 가 재대로 동작하지 않을때 해결방법

JavaService로 java프로그램을 서비스로 윈도우에 등록할 수 있다.

그런데 등록 후 net start 서비스명   이라고 쳐보면  Error 3534를 만나게 된다.

보통 두가지 원인이다.

첫번째는 Windows xp 의 경우 jvm.dll 이 필요로 하는 msvcr100.dll 이 Windows의 system32 디렉토리에 없어서이다.

이때는 Microsoft.com 에 가서 Visual C++ 배포가능 패키지를 다운받아 설치하면된다.


정확한 이름은 Microsoft Visual C++ 2010 Redistributable Package (x86)이고

http://www.microsoft.com/ko-kr/download/details.aspx?id=5555

위 링크에서 받으면된다.


이렇게 했는데도 안되면

만든 프로그램에 문제가 있는것이다.

주로 현재디렉토리가 바뀌는 문제이므로



JavaService.exe -install XXXService  "C:\Program Files\Java\jre7\bin\client\jvm.dll" -Djava.class.path=.;C:\어쩌고\bin;C:\어쩌고\sqljdbc4.jar -Xms64M -Xmx128M  -start 내클래스명 -params 각종파라메터  -out C:\어쩌고\out.txt  -err C:\어쩌고\err.txt -current C:\어쩌고

와 같이 -current 옵션을 사용해서 강제로 현재디렉토리를 변경하면 된다.

디렉토리에 공백이 들어가는 경우 따옴표를 적절히 활용해주면된다.


참고) http://wooorazil.blogspot.kr/2012/11/javaservice.html