2017-07-12 16 views
5

Byłem w pobliżu problemu z rJava w najnowszej wersji R (3.4.1), Mac (10.12.5) i Java VM (1.8.0_131, x86_64 :)rJava ładowanie w R (3.4.1) z OS Sierra

problem:

próbuję go do tej instrukcji

scottdhoover.wordpress.com/2013/03/05/a-basic-rjava-example/

Aby móc uruchomić rJava w R.

Każdy kod z badań:

biblioteki (rJava) .jinit ("") .jclassPath() [1] „/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/rJava/java”

s < - .jnew ("! java/lang/String", "Hello World") .jcall (s, "I", "długość") [1] 12

Podobnie jest z lly działa .. ale gdy próbuję z moich plików:

.jaddClassPath ("/ Users/Camilo/Pulpit/20170711_Java2R") .jclassPath() [1] „/Library/Frameworks/R.framework /Versions/3.4/Resources/library/rJava/java” "/ Users/Camilo/Pulpit/20170711_Java2R"

myExchange < - .jnew ("myExchange") błąd w .jnew ("myExchange"): Java. lang.ClassNotFoundException

gdzie plik myExchange.java jest taki sam jak w pliku przewodnik i znajduje się w folderze na pulpicie.

Co mam zrobić:

Zasadniczo Próbowałem zainstalować rJava od R i nie działa. Wtedy muszę posiadać dwie prowadnice, aby móc załadować rJava pakietów w R od źródła

mam po tej instrukcji:

https://github.com/snowflakedb/dplyr-snowflakedb/wiki/Configuring-R-rJava-RJDBC-on-Mac-OS-X (Aby móc ładować rJava)

Gdzie zarówno

R CMD javareconf 
    /usr/libexec/java_home -V 

Wygląda dokładnie tak, jak być powinien.

Aby pozbyć się problemu OpenMP, że ludzie mają zwykle śledzę ten przewodnik:

http://thecoatlessprofessor.com/programming/openmp-in-r-on-os-x/#clang-before-3-4-0 (aby pozbyć się problemu OpenMP, że wszyscy ludzie mają).

i wreszcie utworzyć dowiązania przy użyciu tego kodu

sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib 

i udało mi się zainstalować bibliotekę z R.

But! Gdy próbuję go z terminalu dostaję ten błąd

ld: library not found for -lomp 
    clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation) 
    make[2]: *** [libjri.jnilib] Error 1 
    make[1]: *** [src/JRI.jar] Error 2 
    make: *** [jri] Error 2 
    ERROR: compilation failed for package ‘rJava’ 

Tak myślałam: Biblioteka lub dowiązaniem musi być brakuje zbyt .. ale nie ma takiego pliku jak w LLVM (Zostały rozwiązać w LLVM z ld: library not found for -lomp)

Wiem, że błąd "ClassNotFoundExceptions" może być powiązany z PATH, ale powinno być OK cos zostało zadeklarowane na początku.

btw, ja również sprawdzić plik .R/Makevars który wygląda tak

CC=/usr/local/clang4/bin/clang  
    CXX=/usr/local/clang4/bin/clang++ 
    LDFLAGS=-L/usr/local/clang4/lib 

Wszelkie pomysły jak go rozwiązać? Z góry dziękuję! Mam nadzieję, że jest to jasne.

+0

Po miesiącu nikt mi nie może pomóc ... Jakieś pomysły? –

Odpowiedz

2

Dla mnie rozwiązaniem było zainstalowanie https://github.com/coatless/r-macos-clang i dodaj link

sudo ln -s /usr/local/clang4/lib/libomp.dylib /usr/local/lib/libomp.dylib 

Przed R CMD javareconf ja unset JAVA_HOME.

+0

Spróbuję tego w tym tygodniu i dam znać! dzięki! ;) –

1

Jest to problem mylący i zależy od wersji R.

Dla R 3,4 użytkowników na komputerze Mac Sierra zignoruj ​​wszystkie odgłosy dotyczące gcc, clang, llvm. R 3.4 używa clang4. Okres. Więc należy zrobić

  • Install clang4
  • Zmień .R/Makevars aby wskazać clang4
  • Instalacja Java 8
  • R CMD javareconf
  • Aby rozwiązać problem łączenia, sudo ln -s /usr/local/clang4/lib/libomp.dylib /usr/local/lib/libomp.dylib

Wtedy powinieneś być w stanie pomyślnie zainstalować rJava.

Ponadto, rJava nie załaduje się poprawnie w starszym RStudio. Dlatego upewnij się, że zaktualizowałeś program RStudio do najnowszej wersji.