본문 바로가기
IT/ActionScript & Flex

TIP : ANT로 mxmlc 실행시 Could not find a jvm

by yjacket 2009. 11. 10.

Windows 7 을 설치한 이후 내 컴퓨터에서 직접 배포본을 컴파일 하지 않고 있다가, 오늘 컴파일 해야 할 일이 있어서 ant 로 플렉스 컴파일을 시도했으나 “Could not find a jvm” 이라는 에러 메시지를 만나게 되었다.

Error: could not find a JVM.

Error: could not find a JVM.

%JAVA_HOME% 설정이 잘못된 듯 하여 환경변수를 수정해보았다.

image

C:\Program Files (x86)\Java\jre6\bin –> C:\Program Files\Java\jdk1.6.0_17로 변경.
하지만 이번엔 Error: could not find a JVM. 에러 대신 Error loading: c:\Program Files\Java\jdk1.6.0_17\jre\bin\server\jvm.dll 에러가 발생했다.


처음 보는 메시지라 일단 구글 검색을 시도 했더니 두 가지 정도로 해결 방법이 제시 되어 있었다.

  • jvm.config 파일을 수정
  • %JAVA_HOME% 에서 역슬래시(\) 문자 대신 슬래시(/)를 쓰고, 긴 파일이름(LFN) 대신 도스 이름(C:\PROGRA~1)을 쓸 것

두가지 방법을 다 사용해봤지만 별 소용이 없었다.

원인 재분석

처음 만난 에러메시지(Error: could not find a JVM.)는 eclipse 에서 ant 를 이용해 mxmlc를 실행하는 상황에서 mxmlc가 토해내는 메시지다. 근데 왜 오류가 났을까?

1. eclipse는 java 를 이용해 ant 를 실행하고 ant task에서 mxmlc 를 실행한다.
2. mxmlc 는 시스템 환경변수 %JAVA_HOME% 을 참조하여 java 를 실행하고 소스코드를 컴파일 한다.

의문점은 “1번의 java 는 문제 없는데 2번의 java 만 문제가 있을까?” 라는 부분.

하지만 다시 생각하니 문제는 간단했다.
eclipse 에서 ant를 실행하는 java 환경은 eclipse가 제공하는 환경이고
mxmlc가 실행되는 java 환경은 윈도우가 제공하는 환경이다.

즉, 2번에서 문제가 발생하는 것으로 봐서 윈도우의 환경변수 %JAVA_HOME% 가 잘못 설정 된 것이 원인이다.

오류메시지에 대해 생각해보자..

Error loading: c:\Program Files\Java\jdk1.6.0_17\jre\bin\server\jvm.dll 에러 메시지는 왜 나타났을까.
왜 로딩에 실패했다고 나올까… 혹시 mxmlc 가 32bit응용프로그램이라 64bit 자바를 못 쓰는건가? 그럼 자바를 다시 설치해보자.

http://java.sun.com을 방문해 32bit JDK 를 내려 받고 설치.

환경변수 %JAVA_HOME%을 다시 설정하고, mxmlc 를 실행하니 헉~ 잘된다.

결론

mxmlc를 사용하기 위해선 32bit JDK가 필요하다.

'IT > ActionScript & Flex' 카테고리의 다른 글

blazeDS RemoteClass  (0) 2010.07.08
팝업일때 addedToStage 이벤트 두번 발생함  (0) 2009.06.02
AS3 getter & setter generator  (0) 2009.02.11