2017-09-25 38 views
2

我繼續在安裝和加載rJava時遇到問題。我有R 3.4.1('Single Candle'); Java v 9和mac OS 10.12.6。rJava,mac 10.12.6和Java v 9(R版本3.4.1)問題

我跟所有的使用終端來編輯我的〜/ .profile文件包含其中包括上市here步驟:

出口JAVA_HOME = $(在/ usr/libexec目錄/ JAVA_HOME -v 9)

出口PATH = $ JAVA_HOME/bin:$ PATH

並進行其他更改以將R連接到「正確的」Java。當我運行

須藤 - [R CMD javareconf

然而,我得到說的錯誤消息:

警告: 'JNI_CreateJavaVM' 被棄用 [-Wdeprecated-聲明] JNI_CreateJavaVM(0,0, 0); ^ /System/Library/Frameworks/JavaVM.framework/Headers/jni.h:1937:1:注: 'JNI_CreateJavaVM' 已經被明確標記在這裏不推薦 JNI_CreateJavaVM(JavaVM的** PVM,無效** penv,無效*參數); ^ 1生成警告。

當我運行

[R CMD INSTALL rJava_0.9-8.tar.gz

一切順利,直到我得到一個錯誤,指出:

檢查JNI程序是否可以被編譯... configure:error:無法編譯簡單的JNI程序。有關詳細信息,請參閱config.log。

確保已安裝Java開發工具包並在R中正確註冊。 如果有疑問,請以root身份重新運行「R CMD javareconf」。

錯誤:配置從上面鏈接網站失敗包「rJava」

米哈爾好心建議,以確保「的/ usr/libexec目錄/ JAVA_HOME -v 9」「點」,以JDK和JRE沒有。我不知道如何做到這一點。此外,當我嘗試類似:

回聲$ JAVA_HOME

我得到:

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home

我怎麼知道這個JDK還是JRE?

由於我的錯誤消息,我認爲我有一個JNI問題,但我不知道如何去處理這個問題。任何有關使用Michal的教程可能出錯的任何見解都將不勝感激!

P.S.我原來的問題是在R,試圖加載庫(rJava),並得到這個錯誤:

錯誤:包或命名空間加載失敗「rJava」: .onLoad在loadNamespace()爲「rJava」失敗,詳細信息: 電話:dyn。load(file,DLLpath = DLLpath,...) 錯誤:無法加載共享對象'/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so': dlopen /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so,6):未加載庫:@ rpath/libjvm.dylib 引用自:/Library/Frameworks/R.framework /Versions/3.4/Resources/library/rJava/libs/rJava.so 原因:找不到圖像

回答

0

您可以執行以下操作來測試您的Java 9是否爲JDK。做以下:

> git clone https://github.com/mkowsiak/jnicookbook.git 
> cd jnicookbook/recipeNo001 
> export JAVA_HOME=$(/usr/libexec/java_home -v 9) 
> export PATH=$JAVA_HOME/bin:$PATH 
> make 
> make test 

如果你看到

Hello world! 

末,這意味着你的JDK可以編譯JNI代碼。現在,如果它正常工作,這意味着rJava仍在使用不正確的Java安裝(例如Apple的一個安裝)。在這種情況下,您需要查看rJava的錯誤日誌,以確定在那裏使用了什麼。

我希望這會幫助你至少一點點。

+0

非常感謝,我非常感謝!當我跑這個,我得到這個錯誤:/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/java -Djava.library.path =:./ lib -cp目標recipeNo001.HelloWorld 錯誤:無法找到或加載主類recipeNo001.HelloWorld 引起:java.lang.ClassNotFoundException:recipeNo001.HelloWorld make:*** [test]錯誤1 - 對這意味着什麼的建議? Oo – Kate

+0

確保在運行「make test」之前調用:「make」 - 我錯過了將這一步放在說明中:( – mko

+0

我有同樣的問題。用@mko消解,我檢查了JDK是否可以編譯JNI代碼,但是現在的問題是如何讓rJava使用正確的Java安裝? –