R

[R] NLP4kec 오류 해결/ rjava.dll 오류 해결/ error: .onLoad failed in loadNamespace() for 'rJava', details: call: inDL(x, as.logical(local), as.logical(now), ...)

빛날희- 2021. 4. 16. 15:36

하루 넘게 rJava.dll 오류 때문에 머리 싸매다 드디어 해결하여 감격받아서 글올립니다.. 에러 글 이미지 등은 제가 오류 푸는 데에만 급급하여 캡처를 하지 못한 점 이해바랍니다! 

 

일단 저는 현재 Rstudio를 사용하고 있고 컴퓨터는 windows10 64bit를 사용하고 있습니다. 

사건은 바야흐로 NLP4kec 패키지를 사용하기 위해 패키지를 설치하는 데서 발생했습니다. 우선 해당 패키지를 설치하려 하니 EXTPR_PTR ... dll을 찾을 수 없습니다라는 팝업창이 뜨며 다음 오류가 발생했습니다.

 

Error: package or namespace load failed for ‘rJava’: .onLoad failed in loadNamespace() for 'rJava', details: call: NULL error: .onLoad failed in loadNamespace() for 'rJava', details: call: inDL(x, as.logical(local), as.logical(now), ...) error: unable to load shared object 'C:/users/user/Documents/R/win- library/4.0/rJava/libs/x64/rJava.dll'

 

하여 rJava 패키지 설치에 문제가 있나해서 install.packages다시 해줬는데 당연히 안됩니다. 

 

사이트 뒤져가며 찾아보니, 다음과 같은 방법으로 해결하셨다고들 합니다.

 

1) Java를 64bit버전으로 다시 설치해라. Java를 32비트로 설치한 경우에 이런 에러가 발생할 수 있다합니다. 

 

2) 자바를 다시 설치해도 안되면 jdk를 최신 버전으로 설치해봐라. 

 

3) 환경변수 JAVA_Home을 jre 혹은 jdk 파일이 있는 곳으로 설정해라. 환경변수 설정은 제어판 혹은 Rstudio내에서 할수 있다. 이에 대해선 다음 블로그 글을 참고하자. 밑의 블로그 이외에도 구글에 해당 오류를 찾아보면 환경변수 설정을 다시 해줘서 잘 해결됐다는 글이 많이 보이니 그 글들을 참고해서 해결해볼 수 있다. 

vyeslog.com/blog/rjava-in-r/

 

 

근데 저는 위의 방법을 모두 해봐도 같은 에러가 뜨고 오류가 해결되지 않았습니다ㅠㅠㅠㅠ 몇번을 컴퓨터를 껐다 키고 자바도 두번이나 재설치 했음에도,,, 그러다가 stackoverflow에서 구세주같은 글을 발견했습니다. 

 

stackoverflow.com/questions/65332183/rjava-extpr-ptr-procedure-entry-point-not-found-in-library

 

rJava "EXTPR_PTR" procedure entry point not found in library

I'm attempting to install rJava as to use the package tabulizer. My steps so far has been to rund install.packages("rJava"), run Sys.setenv(JAVA_HOME="C:/Program Files/Java/jdk-15.0....

stackoverflow.com

 

위의 링크를 따라가보면 R과 rJava를 최신버전으로 설치하면 문제가 없을 거랍니다. 사실 추천수가 그리 많지 않아 기대하지 않고 R, rJava를 최신 버전으로 설치해보았습니다. 

 

 

1) 우선 rJava는 install.packages로 설치해도 최신버전으로 설치되지 않아 cran에서 직접 rJava를 다운받아 설치했습니다. 

cran.r-project.org/web/packages/rJava/index.html

위 사이트에서 windows의 zip파일을 설치하여 C:\Users\seo\Documents\R\win-library\4.0(경로는 다를 수 있음) 의 라이브러리가 저장되는 경로에 수동으로 압축을 풀어줬습니다. 그 후 알 스튜디오에서 다시 install.packages로 rjava를 설치해줍니다. 여기서 잘작동되면 좋겠지만 저는 이렇게 해도 오류가 떴습니다. 

 

2) 이번엔 R을 최신버전으로 깔아보겠습니다. 제가 오류가 났을 때 사용했던 버전은 글 작성 일자 기준으로 4.0.0버전이었습니다. 현재 출시된 버전은 4.0.5버전이므로 해당 버전으로 다시 설치합니다. 

install.packages("installr")
library(installr)
updateR()

해당 코드를 Rgui에서 실행하면 기존 R을 최신버전으로 업데이트할 수 있습니다. 업데이트가 끝나면 기존 버전에 있는 라이브러리를 방금 설치한 버전의 R라이브러리로 복사하겠냐는 옵션이 나오는데 yes 체크해주면 기존의 라이브러리를 새로운 R로 복사해올 수 있다. 그렇게 업데이트가 끝나고 나면 R폴더에 이렇게 버전 두개가 생긴다. 

기존 버전은 혹시 몰라 지우진 않고 다시 알 스튜디오를 실행하여 rJava를 library해오면,,,,,,

 

드디어 작동한다ㅜㅜㅜㅜㅜ 

rJava가 제대로 작동하니 NLP4kec도 제대로 작동됩니다ㅎㅎ 감격,,,,,

 

 

저와 같이 rJava.dll로 고생하시는 분들이 있다면, 조금이라도 빨리 문제 해결하셨음해서 글 업로드 합니다!! 

 

그럼 저는 다시 코드 짜러 총총,,, 

 

감사합니다.

 

 

'R' 카테고리의 다른 글

문자열 조작 패키지 stringr 주요 함수 정리  (0) 2021.04.02