본문 바로가기
컴퓨터/자질구레 팁

Cytoscape의 JVM 에러

by adnoctum 2011. 3. 11.



   Cytoscape 를 실행시키면 다음과 같은 에러 메세지가 뜰 수가 있다.

The JVM count not be started. The maximum heap size (-Xmx) might be too large or an antivirus or firewall tool could block the execution.


이 에러는 JVM이 올라가기엔 설정된 메모리가 너무 크다는 의미인데, 일단 해결책을 살펴 보고 에러의 뜻이 무엇인지 조금 자세히 알아 보자.

위와 같은 에러가 나타났다면, 일단 Cytoscape 가 설치되어 있는 경로로 간다. 일반적으로  C:\Program Files\Cytoscape 일 것이다. 그 곳에 가면 gen_vmoptions.bat 파일이 보일 것이다. 그것을 실행시키면 조금 있다 Cytoscape.vmpotions 라는 파일이 생성된다. 바로 안 나타나면 새로 고침(F5)을 한다. 그 파일은 실은 텍스트 파일이므로, 따라서, 메모장을 실행시키고 메모장에서 Cytoscape.vmoptions 파일을 불러 온다. 그러면 다음과 같은 내용이 있다.


-Xms10m  
-Xmx1550m
-Dswing.aatext=true              
-Dawt.useSystemAAFontSettings=lcd

위에서 -Xmx 1550m 의 숫자를 1000m 정도로 바꾼 후 저장을 한다. 그리고 다시 Cytoscape 를 실행시킨다. 


-Xms10m  
-Xmx1000m
-Dswing.aatext=true              
-Dawt.useSystemAAFontSettings=lcd


그러면 무리 없이 실행될 것이다.



위는 Cytoscape 가 자바로 만들어져 있기 때문에 발생한 것인데, 자바는 Java Virtual Machine 이라는, 가상의 운영체제를 먼저 구동시킨 후, 그 위에서 자바로 만들어진 프로그램들이 실행되게 작성되어 있다. 그러므로 일단 virtual machine 을 구동시킬 때 얘한테 사용할 적정 메모리(RAM)을 할당해 준다. 그런데, 기본으로 설정되어 있는 1.55GB 가 너무 크면 아예 virtual machine 을 구동시킬 수 없기 때문에, 이 값이 너무 크다고 위와 같은 메세지가 뜬 것이다. 일반적으로 Windows XP의 경우 대략 1GB 정도를 운영체제가 먹고 있는 것 같은데, 따라서 만약 컴퓨터에 붙어 있는 RAM이 2GB 이면 1GB 만 빈 곳으로 남으니까 1.55GB 를 virtual machine 한테 주라고 하면 에러가 날 수밖에. 따라서 자신의 RAM 용량에 적절히 저 -Xmx 값을 설정해 주면 되겠다. 램의 값을 보는 단축키는 시작 + Break 이다.