Решение sudo R CMD javareconf не работает - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь запустить r Java в RStudio, но безуспешно:

Error: package or namespace load failed for ‘rJava’:
 .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.6/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.6/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/lib/server/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.6/Resources/library/rJava/libs/rJava.so
  Reason: image not found

При использовании общего решения для проблем r Java sudo R CMD javareconf не работает и выдает мне этот вывод:

Java interpreter : /usr/bin/java
Java version     : 11.0.6
Java home path   : /Library/Java/JavaVirtualMachines/jdk-11.0.6.jdk/Contents/Home
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk-11.0.6.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk-11.0.6.jdk/Contents/Home/include/darwin  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include  -fPIC  -Wall -g -O2  -c conftest.c -o conftest.o
clang-7: warning: no such sysroot directory: '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' [-Wmissing-sysroot]
In file included from conftest.c:1:
/Library/Java/JavaVirtualMachines/jdk-11.0.6.jdk/Contents/Home/include/jni.h:39:10: fatal error: 
      'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
make: *** [conftest.o] Error 1
Unable to compile a JNI program


JAVA_HOME        : /Library/Java/JavaVirtualMachines/jdk-11.0.6.jdk/Contents/Home
Java library path: 
JNI cpp flags    : 
JNI linker flags : 
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.

Кто-нибудь сталкивался с этой ошибкой раньше и знает, как ее устранить?

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

В конце концов уловка состояла в том, чтобы показать Rstudio, где искать, как указано пользователем Rmadillo здесь:

github.com / rstudio / rstudio / Issues / 2254

Просто запускайте это каждый раз перед использованием пакета r Java.

0 голосов
/ 09 февраля 2020

Недавно у меня была такая проблема с коллегами после того, как они перешли на Catalina. Мое решение состояло в том, чтобы снова установить нарушающую версию JDK. Похоже, что ваша система имеет путаницу между 11.0.6 и 11.0.1.

  1. Go на этой странице: https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase11-5116896.html

  2. Скачать и установить 11.0.1

  3. sudo R CMD javareconf

  4. sudo Rstudio # elevate privs

  5. install.packages ("r Java ")

Если это не сработает, повторите попытку с шага 2, но с 11.0.6 из https://www.oracle.com/technetwork/java/javase/overview/index.html

...