본문 바로가기
mac :

R에서 library(xlsx) 관련 java오류(unable to find any JVMs matching version)

by 델리로그 2020. 9. 25.
반응형

안녕하세요 :)

 

오늘은, 맥북에서 R 통계패키지 사용시

library(xlsx)가 제대로 작동하지 않고

java관련 오류가 표출되는 문제점을 해결해보겠습니다.

 

 

 

 

교재는 "R을 활용한 계량분석 강의 노트(최유진, 2017)"를 활용하고 있는데, 

 

첫 실습과제부터 난관에 빠졌습니다...ㅜㅜ

정말 기초적인 실습과제인데, 프로그램이 작동하질 않으니 난감했어요.

 

우선, 제 실습환경은 다음과 같습니다.

- 2020 맥북에어
- 맥OS Catalina 10.15.6
- R Studio 1.3.1073

 

원래대로라면 교재에 설명된 순서대로,

다음 명령어들을 차례로 입력함으로써

install.packages("xlsx") 
library(xlsx)

 

엑셀 파일(xlsx)을 불러올 수 있어야지

기술통계가 됐던, T검정이 됐던, 시도를 할텐데...

 

저한테는 아래처럼 오류메시지가 뜨고 마네요.

 

Unable to find any JVMs matching version "(null)". 
Error: package or namespace load failed for ‘xlsx’: 
.onLoad failed in loadNamespace() for 'rJava', details: 
call: dyn.load(file, DLLpath = DLLpath, ...) 
error: unable to load shared object '/Library/Frameworks/
R.framework/Versions/3.6/Resources/librar
y/rJava/libs/rJava.so': 
dlopen(/Library/Frameworks/R.framework/Versions/3.6/
Resources/library/rJava/libs/rJava.so, 6): Lib
rary not loaded: /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/
Contents/Home/lib/server/libjvm.dylib Referenced from: /Library/Frameworks/R.framework/Versions/3.6/Resources/library/
rJava/libs/rJava.so Reason: image not found In addition: 
Warning message: In system("/usr/libexec/java_home", intern = TRUE)
: running command '/usr/libexec/java_home' had status 1
No Java runtime present, try --request to install.

 

그래서 폭풍 인터넷 검색...

해결책은 크게 세 가지였으나, 계속 같은 오류가 발생했어요.

우선을 세 가지를 정리하면, 

 

 

 

1. require(xlsx) 명령어 입력

2. install.packages("rJava") 명령어 입력

3. R과 Java의 버전 확인(32bit, 64bit) 및 업데이트 (아래 링크 참조)

rstudio.com/products/rstudio/download/

 

Download RStudio

RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, and a variety of robust tools for plotting, viewing history, debugging and managing

rstudio.com

https://www.java.com/en/download/manual.jsp

 

Java Downloads for All Operating Systems

Java Downloads for All Operating Systems Recommended Version 8 Update 261 Release date July 14, 2020 Important Oracle Java License Update The Oracle Java License has changed for releases starting April 16, 2019. The new Oracle Technology Network License Ag

www.java.com

 

 

 

그래서 오류메세지를 분석(이라고 쓰고 때려 맞추기)해보기 시작했어요.

첫 줄에 "JVMs"가 뭔지는 모르겠지만, 셋째 줄에 "rJava"가 써있고,

아래쪽에는 그 디렉토리(저장위치)를 찾을 수가 없다는 것을 보니

Java(자바)의 문제가 맞기는 한 것 같았어요. 

하지만, 이미 자바도 새로 설치해보고 이것저것 시도해본 이후였기에 다른 방법이 필요했죠.

 


 

결론은 해결했습니다!

오류 메시지를 꼼꼼히 읽어보고 잡아 낸, 키워드(Keywords) 두 가지

"jdk""java_home"이 자바와 관련이 있었고,

 

대충 이해한 바로는, 맥에 Java를 설정한 경우 Java home을 설정하기 위하여 JDK를 찾아야한다는 내용 같았어요.

(프로그래밍 1도 몰라서 잘 모르겠어요.. 그냥 해결만 하면 되니까!)

 

저는 Finder에서 CMD + SHIFT + G 를 누르고

/라이브러리/Java/JavaVirtualMachines/ 경로로 가보니,

모두 빈 폴더여서 JDK와 Java home 구성에 문제가 있구나라고 직감했죠.

 

 

그래서 찾아본 Jdk 설치법

간단하니까 순서대로 따라해보세요.

 


 

1. 홈브류 설치 (홈브류가 어떤 개념인지는 검색해보세요. 간편한 설치 도우미 정도(?))

- 키보드에  Command + 스페이스바 키를 눌러 Spotlight에 아래와 같이 입력하여 '터미널'을 실행합니다.

 

 

 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"


- 터미널에 위 명령어를 입력하고 엔터를 누르면,
비밀번호를 입력하라고 사진처럼 열쇠표시가 뜹니다.

- 키보드 입력내용이 보이지 않지만, 맥 비밀번호를 입력 후 엔터를 누르면 홈브류가 설치됩니다.

 

 

 

2. Open Jdk

- 터미널에서 홈브류가 설치되면, Open Jdk를 추가해주면 됩니다.

- 아래 명령어 입력

 

brew tap AdoptOpenJDK/openjdk

 

 

 

3. JDK, JVM 설치

- 설치할 자바 버전을 선택해서 입력

(아래 명령어에서 install 뒷부분을 *출처 페이지 아래쪽 표 보고 바꿔주시면 돼요. 저는 8을 설치했는데도 오류가 해결됐어요.)

잘 모르시겠으면 그냥 아래 명령어 그대로 복붙!

 

brew cask install adoptopenjdk8

*출처: github.com/AdoptOpenJDK/homebrew-openjdk 

 

AdoptOpenJDK/homebrew-openjdk

AdoptOpenJDK HomeBrew Tap. Contribute to AdoptOpenJDK/homebrew-openjdk development by creating an account on GitHub.

github.com

 

터미널 창에서 모든 설치가 완료된 후 ,

R에서 library(xlsx) 이후 read.xlsx(".xlsx",1), View(), attach()를 통한 자료읽기가 가능해졌습니다!

 

 

데이터가 제대로 읽어지는 모습...!!! 감격...!!!

 

 

 

개인적인 생각으로는, 최신 맥북을 구입하신 분들은 자바에 대한 설정이 안잡혀있어서

R 실행시에 자바 관련 오류가 비슷하게 나실 것으로 생각됩니다.

제 포스팅으로 도움이 됐으면 좋겠네요!

 

 


 

겨우 자료 읽는 기능을 활성화시키는데도 오류가 나다니...

앞으로의 과제가 걱정이 됩니다...ㅎㅎ

 

 

p.s 저는 프로그래밍을 1도 모르며, 자바에 대한 이해가 전혀 없습니다.

그저 직감으로 필요한 내용을 검색하여 명령어들을 입력시켜봤는데 운이 좋게 오류가 해결되었을 뿐입니다.

 

 

 

 

반응형

댓글