윈도우 R에서의 Java 설정

R을 사용하면서 Java를 기반으로 하는 프로그램을 호출할 경우가 생각보다 많다. 이들 패키지 목록을 살펴보고자 한다면 이 링크에서 아래 부분 Dependencies를 살펴보면 된다.

이 설정이 특별히 문제가 되는 경우는 사용자의 윈도우 PC에 명시적으로 여러 자바 설정이 이미 되어 있는 경우에 주로 생긴다. 주로 자바 개발을 윈도우 PC에서 해왔을 경우 많이 도출되며 적절한 R버전을 실행하지 않았을 때 또한 문제가 생긴다.  

일단 자바를 전혀 설치하지 않은 PC의 경우에는 윈도우의 레지스트리에 자바 설정이 올라가며, 대부분 R에서 자바를 호출할 시 문제가 생기는 경우는 거의 없다. 단 64비트 OS의 경우 32비트 64비트 양 버전의 자바가 설치되는 경우가 대부분인데 이 때 적절한 R 버전을 실행해 주는게 필요하다.

 

일단 필자의 경우 64비트 윈도우 7 랩탑을 사용하고 있고, R 바이너리를 설치할 때 32비트 R은 제외하고 설치한다. 물론 함께 설치해도 되나, 32비트 R을 사용할 이유가 전혀 없다.(R i386으로 시작하는 아이콘이 32비트 R이다).

문제는 만일 64비트 R을 실행했는데, JAVA_HOME이 32비트 자바로 설정이 되어 있는 경우에 library(rJava) 실행에 문제가 생긴다. 이 때 반드시 JAVA_HOME이 64비트 자바 환경으로 되어 있는지 확인해야 되며 만일 R에서만 그렇게 사용하고자 한다면 아래와 같은 명령어로 R의 자바 환경을 별도로 설정해 주는게 필요하다.

1
Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jre7")

위의 자바 환경은 기본 설치시 설정되는 경로니 독자분들의 상황에 맞게 설정하기 바란다. 

만일 위 코드를 매번 실행하기 귀찮다면 필자가 만들어서 개인적으로 사용하는 아래 코드를 “R_HOME\etc\Rprofile.site”에 넣어두면 어떤 버전의 R이 실행되든 해당 R만의 자바 설정을 읽어오게 될 것이다. 

 

1
2
3
4
5
6
7
if(Sys.getenv("R_ARCH") == "/x64") {
  # for 64bit JRE
  Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jre7")
}else{
  # for 32bit JRE
  Sys.setenv(JAVA_HOME="C:\\Program Files (x86)\\Java\\jre7")
}

 

많은 분들이 KoNLP를 사용하기 위해 자바 설정을 하게 되는데, 위와 같은 문제들이 있어서 블로그에 올려봤다. 나로서도 많은 분들의 질문이 아니었다면 이런 고민을 하지 않을뻔 했는데, 다행히 성실히 질답을 해주시는 분들의 도움으로 이렇게 정리를 할 수 있었던 것 같다.  

CC BY-NC 4.0 윈도우 R에서의 Java 설정 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.