Błąd ładowania rJava w RStudio / r Po "aktualizacji" do OSX Yosemite
[18]} ostatnio "uaktualniłem" z OSX Mountain Lion do Yosemite i z R 3.1.3 do 3.2. Natychmiast po aktualizacji, kiedy otworzyłem R lub RStudio, dostałem wyskakujący komunikat informujący, że muszę zainstalować Javę 6. Dodatkowo, załadowanie rJava
lub dowolnego pakietu, który zależy od rjavy (np. xlsx
) spowodowało awarię RStudio (r również się rozbił, gdy próbowałem otworzyć R.app
bezpośrednio).
Po wypróbowaniu kilku poprawek znalezionych na Stack Overflow i gdzie indziej (więcej szczegółów poniżej), jestem w punkcie, w którym ładowanie rJava
lub dowolnego pakietu zależnego od rJava
nie powoduje już awarii R, ale powoduje następujący błąd:
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’
Jednakże, jeśli wywołam R z linii poleceń i załaduję rJava
lub dowolny pakiet zależny od rJava
, wydaje się, że działa (a przynajmniej nie dostaję żadnych komunikatów o błędach).
Próbowałem wielu różnych prób poprawek, niektóre z nich kilka razy, i nie pamiętam dokładnie, co zrobiłem w jakiej kolejności (nie zdawałem sobie sprawy, że to będzie takie Bagno i tak naprawdę nie śledziłem), ale oto sedno sprawy:
-
Dodałem do mojego
.bash_profile
(per to tak odpowiedz):Export JAVA_HOME= "/ usr / libexec /java_home-v 1.8 "
export LD_LIBRARY_PATH = $JAVA_HOME/jre/lib / server -
Rekonfiguracja Javy z linii poleceń w następujący sposób:
Sudo R CMD javareconf-n
-
Sprawdził
options("java.home")
i odkrył, że ustawiono to naNULL
. Próbowałem ustawić go na następujące (per to pytanie):Options ("java.home " =" / Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home/jre")
Zainstalowałem najnowszy Java Development Kit i ponownie zainstalowałem
rJava
ze źródła (nie pamiętam, gdzie go znalazłem).
W pewnym momencie podczas próby wszystkich tych, byłem w stanie załadować {[1] } bez awarii R, ale zamiast tego dostał komunikat o błędzie wysłany powyżej. W ponadto, kiedy kończę RStudio, wydaje się, że zamykam normalnie, ale wtedy pojawi się komunikat "RStudio quit nieoczekiwanie", wskazujący, że program się rozbił podczas próby zamknięcia.
W końcu zdecydowałem się zainstalować Javę dla OS X 2014-001 (Java 6), ponieważ wydawało mi się, że kończą mi się opcje. Teraz, kiedy otworzyłem R lub RStudio, wyskakujący komunikat "This software needs Java 6" nie pojawił się. Jednak nadal otrzymywałem komunikat o błędzie .onLoad failed in loadNamespace() for 'rJava'
opublikowany powyżej.
Przeglądając niektóre posty, na które już patrzyłem, zauważyłem inną odpowiedź , którą wcześniej przeoczyłem, która zalecała otwarcie RStudio z następującym kodem wiersza poleceń, który daje RStudio poprawną ścieżkę do Javy:
LD_LIBRARY_PATH=$(/usr / libexec / java_home)/jre/lib / server: open-a RStudio
, które otworzyło okno RStudio i mogłem również załadować rJava
i pakiety, które od niego zależą, bez uzyskania błąd.
Na koniec próbowałem uruchomić R z linii poleceń(czego wcześniej nie robiłem). Okazuje się, że w wierszu poleceń wczytywanie rJava
lub dowolnego zależnego od rJava
pakietu działa i nie powoduje błędów.
Tak więc, mogę teraz uruchomić rJava
jeśli otworzę RStudio z linii poleceń z kodem, który daje RStudio ścieżkę Javy (jak wspomniano powyżej). Chciałbym jednak znaleźć sposób na naprawienie podstawowego problemu, cokolwiek by to nie było, aby RStudio można było otworzyć w zwykły sposób Mac, bez konieczności kludge linii poleceń. Obawiam się również, że zainstalowanie starej wersji Javy może powodować problemy w dół drogi.
Czy ktoś ma jakieś pomysły jak zdiagnozować i rozwiązać ten problem?
15 answers
Miałem ten sam problem i przeszedłem przez te same kroki co Ty. Ostatnim krokiem umożliwiającym uruchomienie RStudio poprzez Finder/Spotlight było połączenie libjvm.dylib do / usr / local/lib:
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-f
Dodano flagę, aby wymusić nadpisanie istniejącego pliku / linku
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-13 09:04:08
Na OSX El Capitan 10.11, użytkownik nie ma uprawnień do zapisu do /usr / lib. Zamiast tego użyj następującego polecenia:
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-20 17:43:35
Możesz załadować libjvm.dylib, by run like
dyn.load('/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/server/libjvm.dylib')
library(rJava)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-28 06:55:53
Na macOS High Sierra (10.13.1) i Javie w wersji 9 musisz użyć nieco innej ścieżki JVM (zwróć uwagę na brakujący folder jre
w ścieżce w porównaniu z instrukcjami dla wcześniejszych wersji Javy):
sudo ln -f -s $(/usr/libexec/java_home)/lib/server/libjvm.dylib /usr/local/lib
Musisz również powiadomić R O JVM:
MY_R_VERSION=$(Rscript -e "cat(with(R.version, sprintf('%s.%s', major, substring(minor, 1, 1))))")
ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/$MY_R_VERSION/Resources/lib/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-29 10:30:09
Działa następujące polecenie:
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
Następnie, w RStudio, Ładowanie rJava działa poprzez ładowanie pakietu "xlsx".
library("xlsx")
P. S. # 1 środowisko: Mac OS X El Capitan 10.11.3 + z RStudio 0.99.491 + i R 3.2.3+. (Teraz testowałem to również na macOS Sierra (10.12) i R. 3.3. 1.)
P. S. #2 uważam, że openxlsx
jest znacznie szybszy i nie polega na Javie, więc teraz używam tego pakietu. Mam nadzieję, że to pomoże innym.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-31 10:40:01
W ten sposób skonfigurowałem go poprawnie na dwóch komputerach Mac z systemem Mac OS X El Capitan (10.11.6):
-
Odinstaluj "rJava", wydając następujące polecenia w oknie terminala:
Rscript -e 'remove.packages("rJava")' sudo Rscript -e 'remove.packages("rJava")'
Pobierz i zainstaluj oprogramowanie Java z Oracle: https://www.java.com/en/download/mac_download.jsp
-
Dodaj następujące wiersze do
/Users/<userid>/.bashrc
używając swojego ulubionego edytora:# Set JAVA_HOME so rJava package can find it export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)/jre
Zamknij i uruchom ponownie dowolny terminal, R i okna RStudio (aby odebrać zmiany do
.bashrc
).-
Uruchom następujące polecenie w oknie terminala:
sudo ln -sf $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-
Uruchom następujące polecenie w oknie terminala:
sudo Rscript -e 'install.packages("rJava", repos="http://rforge.net", type="source")'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 19:13:12
Powinieneś być w stanie korzystać z CRAN rJava, bez konieczności rekompilowania rJava lub wykonywania jakichkolwiek dodatkowych kroków, łącząc bibliotekę współdzieloną z katalogiem biblioteki rjava.
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /Library/Frameworks/R.framework/Libraries
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 21:08:19
Oto proste kroki:
- usuń pakiet rJava: Usuń.Pakiety (rJava)
- Zamknij R
- Zainstaluj najnowszą Javę na komputerze mac
- Otwórz terminal i wpisz polecenie: sudo R CMD javareconf
-
Otwórz R i zainstaluj rJava za pomocą tego polecenia:
Install.packages ("rJava", dependencies=TRUE, type="source")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-05 17:08:29
Problem image not found istnieje z zupełnie nową instalacją na OSX High Sierra z najnowszą Java SE 10 JDK.
Udało mi się rozwiązać problem ze ścieżką z rJava za pomocą poprawki znalezionej na stronie problemów z Github rJava: https://github.com/s-u/rJava/issues/78
R CMD javareconf JAVA_CPPFLAGS= - i/System/Library/Framework / JavaVM.framework / Headers
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-03 16:38:18
Oto co u mnie działało na Macu:
-
W Twoim
~/.profile
LUB~/.bashrc
Dodaj ten wiersz:%export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
1.1
% source .profile
(lub% source .bashrc
) % sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
remove.packages(rJava)
remove.packages(Rweka)
- z terminala wpisz to polecenie:
%sudo R CMD javareconf
install.packages("rJava", dependencies = TRUE, type = "source")
install.packages("rJava", dependencies = TRUE, type = "source")
- Załaduj swoje
library("rJava", "RWeka")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-05 09:30:17
Może kolejna prosta odpowiedź, która nie dotyka twojego systemu plików:
$ install_name_tool -add_rpath /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
(Zastąp jdk1.8.0_131.jdk
ścieżką JDK.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-09 04:47:37
Sprawdź lokalizację libjvm.plik dylib.
Spróbuj tego, w moim przypadku to zadziałało:
dyn.load('/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/lib/server/libjvm.dylib')
library(rJava)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-04 11:09:32
Tutaj możesz pobrać legacy Java w wersji 6 dla El Capitan: https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US Po tym, pakiet rJava działa dla mnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-03 21:19:01
Uruchom następujący wiersz poleceń: sudo R CMD javareconf
Kilka powyższych rozwiązań wspomniało o tym, ale sugerują również, aby usunąć i następnie ponownie zainstalować pakiet rJava
. Uważam te dodatkowe kroki za niepotrzebne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-01 19:37:38
Poniższy wiersz rozwiązał ten sam problem, który miałem z rJava
pakietem, jak inni w tej dyskusji. Jestem pewien, że istnieje więcej niż jedno rozwiązanie tego problemu i szczerze dziękuję wszystkim za ich wkład, ponieważ czasami jedna linia, taka jak ta poniżej, oszczędza dużo czasu od pójścia do kosza!
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-29 08:57:18