Недавно я "обновил" от OSX Mountain Lion до Yosemite и от R 3.1.3 до 3.2. Сразу после обновления, когда я открыл R или RStudio, у меня появилось всплывающее сообщение о том, что мне нужно установить Java 6. Кроме того, загрузка rJava или любого пакета, который зависит от rJava (например, xlsx), вызвал RStudio (R также разбился, когда я попробовал это, открыв R.app напрямую).
После нескольких исправлений, найденных в переполнении стека и в другом месте (подробнее см. ниже), я нахожусь в точке загрузки 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):экспорт 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. Я попытался установить его на следующий (за этот вопрос SO):Параметры ( "java.home" = "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Содержание/Главная/JRE" ) 
-  Установлена последняя версия Java Development Kit и переустановлена  rJavaиз исходного кода (не помню, где я ее нашел).
В какой-то момент, пытаясь все это, я смог загрузить rJava без сбоя R, но вместо этого получил сообщение об ошибке, опубликованное выше. Кроме того, когда я ухожу из RStudio, он, похоже, закрывается нормально, но затем появляется сообщение "RStudio quit неожиданно", что указывает на то, что программа потерпела крах при попытке закрыть.
Наконец-то я решил установить Java для OS X 2014-001 (Java 6), поскольку, похоже, у меня заканчиваются варианты. Теперь, когда я открыл R или RStudio, "Это программное обеспечение нуждается в Java 6", всплывающее сообщение больше не появилось. Тем не менее, я все еще получал сообщение об ошибке .onLoad failed in loadNamespace() for 'rJava', опубликованное выше.
При просмотре некоторых сообщений, которые я уже просмотрел, я заметил другой ответ SO, который я пропустил раньше, что рекомендовало открыть RStudio с помощью следующей команды который дает RStudio правильный путь к java:
LD_LIBRARY_PATH = $(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
Это открыло окно RStudio, и я также смог загрузить rJava и пакеты, зависящие от него, без ошибок.
Наконец, я попробовал запустить R из командной строки (чего я раньше не делал). Оказывается, что в командной строке загрузка rJava или любого пакета, который зависит от rJava, работает и не вызывает никаких ошибок.
Итак, теперь я могу заставить rJava работать, если я открою RStudio из командной строки с кодом, который дает RStudio путь java (как отмечено выше). Тем не менее, я хотел бы найти способ исправить основную проблему, какова бы она ни была, чтобы RStudio можно было открыть обычным способом Mac, без необходимости командной строки kludge. Я также обеспокоен тем, что наличие старой версии установленной Java может вызвать проблемы в будущем.
Есть ли у кого-нибудь идеи о том, как диагностировать и решать эту проблему?
