2015-11-19 32 views
7

ROZWIĄZANI !!

Zobacz moje rozwiązanie poniżej, na wypadek gdyby to pytanie pomogło innym w przyszłości.Problemy z instalacją rJava na komputerach Mac; problem z typami danych JNI

Błąd

Jak opisano tytuł, to jest braku dla mnie. Błąd Otrzymuję, gdy próbuję install.packages('rJava') od wewnątrz R jest (z niektórych wcześniejszych pozytywnych kontroli):

checking whether JNI programs can be compiled... yes 
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this. 
ERROR: configuration failed for package ‘rJava’ 
* removing ‘/usr/local/lib/R/3.2/site-library/rJava’ 

Fix Próby

I zostały sprawdzone i wypróbowane następujące uchwały, żaden której pracował dla mnie:

Nie ma takiego szczęścia, z żadną z tych prób.


I miał wcześniej miał rJava (i RJDBC) prawidłowo zainstalowany.

[Edit: I później okazało się, rzeczywisty problem został aktualizacji do OS X 10.11, El Capitan.]


Konfiguracja

$ java -version 
java version "1.8.0_45" 

> R.Version() 
$platform 
[1] "x86_64-apple-darwin15.0.0" 
$version.string 
[1] "R version 3.2.2 (2015-08-14)" 

Mac OS sama:

System Version: OS X 10.11.1 (15B42) 

+0

Powyższe rozwiązanie ma działanie rJava. Jednakże, aby uruchomić RStudio (nie tylko z linii poleceń), musiałem również zastosować się do sugestii podanej tutaj: http://stackoverflow.com/questions/30738974/rjava-load-error-in-rstudio -r-after-upgrade-to-osx-yosemite –

Odpowiedz

5

I ostatecznie rozwiązany ten, poprzez rozwiązania znalazłem here.

Nowy Mac OS X (10.11, El Capitan) ma problemy ze zmiennymi env.


Najnowszy smak dev z rJava udaje się poprawnie obsłużyć. Oto co zrobiłem, żeby go rozwiązać:

  1. Pobierz wersję 0.9-8 (rJava_0.9-8.tar.gz) od here
  2. zainstalować go z pobranego źródła:

    $ R CMD INSTALL ~/Downloads/rJava_0. 9-8.tar.gz

(lub tam, gdzie go umieścić)

to wszystko, co t wziął!

5

nie zrobić LD_LIBRARY_PATH, gdyż nie wydają się istotne dla Mac

Tak, ale Mac ma DYLD_LIBRARY_PATH. Jeśli łączysz się z -ljvm, musisz mieć katalog zawierający libjvm.dylib w DYLD_LIBRARY_PATH.

Mimo to, uważam, że to bardziej wygodne, aby połączyć programy JNI z -ljli (w lib/jli), ponieważ programy związane z -ljvm otworzy się monit o zainstalowanie własnego środowiska wykonawczego Apple Java, gdy system nie ma go (przynajmniej robili to w systemach moich i naszych klientów jakiś czas temu).

Edit: oto link do dyld documentation

+0

Dziękuję za te szczegóły! Dokumentacja DYLD jest świetna. To nie był mój problem, jak widać poniżej. –