저는 최근에 OSX Mountain Lion에서 Yosemite로, R 3.1.3에서 3.2로 "업그레이드"했습니다. 업그레이드 직후 R 또는 RStudio를 열었을 때 Java 6을 설치해야한다는 팝업 메시지가 표시되었습니다. 또한 rJava
rJava (예 :)에 의존하는 패키지를 로드 하거나 로드 하면 xlsx
RStudio가 충돌 (R도 충돌 함) R.app
직접 열어서 시도했을 때 ).
Stack Overflow 및 다른 곳에서 발견 된 몇 가지 수정 사항을 시도한 후 (자세한 내용은 아래 참조),로드 rJava
또는 종속 된 패키지가 rJava
더 이상 R을 충돌시키지 않지만 다음 오류가 발생 하는 시점에 있습니다 .
library(rJava)
Error : .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.2/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
Reason: image not found
Error: package or namespace load failed for ‘rJava’
그러나 명령 줄에서 R을 호출 한 다음로드 rJava
또는rJava
하면 작동하는 것 같습니다 (또는 적어도 오류 메시지가 표시되지 않음).
여러 가지 시도한 수정 사항을 시도해 보았습니다. 그 중 일부는 몇 번이고 제가 어떤 순서로 무엇을했는지 정확히 기억할 수 없습니다 (이것이 그런 끔찍한 일이 될 것이라는 것을 깨닫지 못했으며 실제로 추적하지 못했습니다) ,하지만 그 요점은 다음과 같습니다.
내
.bash_profile
( 이 SO 답변에 따라 ) 다음을 추가했습니다 .export JAVA_HOME = "/ usr / libexec / java_home -v 1.8"
export LD_LIBRARY_PATH = $ JAVA_HOME / jre / lib / server다음과 같이 명령 줄에서 java를 재구성했습니다.
sudo R CMD javareconf -n
options("java.home")
이것이로 설정되어 있는지 확인 하고 발견했습니다NULL
. 나는 그것을 다음과 같이 설정하려고 시도했다 ( 이 질문에 따라 ).options ( "java.home"= "/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre")
최신 Java Development Kit를 설치
rJava
하고 소스에서 다시 설치 했습니다 (어디에서 찾았는지 기억할 수 없음).
이 모든 것을 시도하는 동안 어떤 시점에서 rJava
R을 충돌시키지 않고 로드 할 수 있었지만 대신 위에 게시 된 오류 메시지를 받았습니다. 또한 RStudio를 종료하면 정상적으로 종료 된 것처럼 보이지만 "RStudio가 예기치 않게 종료되었습니다"라는 메시지가 나타나 프로그램을 종료하는 동안 충돌이 발생했음을 나타냅니다.
옵션이 부족한 것 같아 마침내 OS X 2014-001 (Java 6) 용 Java 를 설치하기로 결정했습니다 . 이제 R 또는 RStudio를 열었을 때 "이 소프트웨어에는 Java 6이 필요합니다."라는 팝업 메시지가 더 이상 나타나지 않습니다. 그러나 나는 여전히.onLoad failed in loadNamespace() for 'rJava'
위에 게시 된 오류 메시지가 나타납니다.
이미 살펴본 게시물 중 일부를 검토하면서 이전에 놓친 또 다른 SO 답변 을 발견했습니다. RStudio에 올바른 Java 경로를 제공하는 다음 명령 줄 코드로 RStudio를 열 것을 권장했습니다.
LD_LIBRARY_PATH = $ (/ usr / libexec / java_home) / jre / lib / server : open -a RStudio
그러면 RStudio 창이 열리고 rJava
오류없이 여기에 의존 하는로드 및 패키징 도 가능했습니다 .
마지막으로 명령 줄에서 R을 실행 해 보았습니다 (이전에 해본 적이 없음). 명령 줄,로드 rJava
또는 종속 된 패키지에서rJava
작업에 오류를 발생시키지 않는 .
그래서 이제 얻을 수 있습니다 rJava
명령 줄에서 RStudio에 자바 경로를 제공하는 코드를 사용하여 RStudio를 열면 작업을 (위에서 언급 한대로). 그러나 명령 줄 kludge 없이도 일반적인 Mac 방식으로 RStudio를 열 수 있도록 근본적인 문제를 해결하는 방법을 찾고 싶습니다. 또한 이전 버전의 Java가 설치되어 있으면 문제가 발생할 수 있다는 점도 우려됩니다.
누구든지이 문제를 진단하고 해결하는 방법에 대한 아이디어가 있습니까?
Yosemite
하고 있으므로 잘 모르겠습니다. 관련 답변은 아래를 참조하십시오 El Capitan
.
El Capitan
아래 솔루션은 예상 대로 RStudio
로드 rJava
되는 즉시 도움이됩니다 .
otool -L /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
공유 라이브러리 목록과 해결 방법을 얻으십시오. 의 런타임 내용을 검색하는 방법을 모르겠습니다 @rpath
.
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
트릭을 사용하기 전에 작동 했지만 더 이상 작동하지 않습니다. 나는 한 이 문제에 대한 블로그 포스트를 작성 하고이이 문제를 설명했다. 이 구성에서 다른 사람들 도이 문제를 경험하는지 또는 그것이 내 잘못인지 궁금합니다.