본문 바로가기
연구하기/Computer Engineering

Tomcat 6.x 에서 %1은(는) 올바른 Win32 응용 프로그램이 아닙니다 오류와 함께 서비스가 시작되지 않음

by 썰렁황제 2010. 1. 22.

 환경

Windows 7 64bit Professional K

JDK & JRE 6 - 32bit

문제

Tomcat 6.0.24 설치 후, 서비스를 시작하면 서비스가 시작되지 않으며,  로그 디렉토리의 jakarta_service 를 확인하면, 다음과 같은 오류를 확인할 수 있다.

 

  1. [2010-01-22 18:31:14] [197  javajni.c] [error] %1은(는) 올바른 Win32 응용 프로그램이 아닙니다.
    [2010-01-22 18:31:14] [994  prunsrv.c] [error] Failed creating java C:\Program Files (x86)\Java\jdk1.6.0_17\jre\bin\server\jvm.dll
    [2010-01-22 18:31:14] [1269 prunsrv.c] [error] ServiceStart returned 1

 

해법

  여러 가지로 찾아보았는데 몇몇 사이트에서는 같은 문제가 발생했던 다른 이들이 해결을 위하여 Tomcat 5.5 의 64 비트 지원 실행파일을 가져다가 사용하였다는 이야기가 있는 걸로 보아 32비트와 64비트 버전간의 호환성 문제로 보였다. (호환성 문제에 대한 정확한 내역은 잘 모르겠다)  문제라면 위에서 언급한 파일의 링크가 현 시점에서는 유실되어 있다는 점. (사이트의 다운로드가 아니라 공동개발을 위한 svn repository 에 존재하는 파일인데, 이후 경로가 바뀐 듯 싶다)

 

  그래서 혹시나 설치된 32비트 JRE 대신 64비트 JRE 를 사용하면 되지 않을까 해서 바꿔 봤는데... 정말로 된다...

 

  Tomcat 6 를 64비트 운영체제에 설치한 것은 이번이 처음인지라 Tomcat 6 이 초기 버전부터 그런 것인지 일정 버전 이후부터인지는 모르겠지만, 설치 상황을 보아 런처 및 서비스 제어용 실행 파일이 직접 알아서 32/64비트를 설정하는 것으로 보인다. (실제로 설치 디렉토리를 보면 Program Files (x86) 이 아닌 Program Files 에 설치한다) 문제는 Eclipse Galileo 가 한동안 (지금도 그러는지는 모르겠지만) JRE 32 비트 버전에서만 구동되었다는 것. 따라서 본인의 컴퓨터는 64비트 운영체제임에도 불구하고 32 비트 JRE 를 설치해 사용중이었다. 그러다 보니 이런 문제가 발생한 것.

 

  JDK 는 Eclipse 를 위하여 32비트 버전을 그대로 놔두고, JRE 64비트 버전을 추가로 설치하였다. 물론 Tomcat 모니터 프로그램에서 Java 실행 경로를 수정해야 하는 것은 필수.

 

이 글은 스프링노트에서 작성되었습니다.

반응형