r Java пытается загрузить несуществующий jdk, несмотря на все пути и настройки, указывающие на правильный - PullRequest
0 голосов
/ 20 марта 2020

Я прошел через все обнаруженные неисправности (через несколько часов). Каждый раз, пытаясь загрузить rJava, я получаю сообщение об ошибке:

Loading required package: rJava
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 '/Users/u0982704/Library/R/3.6/library/rJava/libs/rJava.so':
  dlopen(/Users/u0982704/Library/R/3.6/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: /Users/u0982704/Library/R/3.6/library/rJava/libs/rJava.so
  Reason: image not found

Я запустил sudo R CMD javareconf и получаю следующее:

Java interpreter : /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java
Java version     : 1.8.0_181
Java home path   : /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre
Java compiler    : /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/javac
Java headers gen.: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/javah
Java archive tool: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/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
/usr/local/Cellar/gcc/9.3.0/bin/gcc-9 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/../include/darwin  -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include  -fPIC  -Wall -g -O2  -c conftest.c -o conftest.o
/usr/local/Cellar/gcc/9.3.0/bin/gcc-9 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/Cellar/gcc/9.3.0/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation


JAVA_HOME        : /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags    : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.

Так что мой java равен jdk1.8.0_181.jdk. В моем Sys.getenv() указано, что jdk-11.0.1.jdk для DYLD_FALLBACK_LIBRARY_PATH, несмотря на тот факт, что я никогда не устанавливал jdk 11. Однако, когда я изменяю этот путь на jdk 1.8, он все равно загружает r Java выдает ту же ошибку, ища jdk11. Он ссылается на то, что он был найден в файле r Java .so, однако этот файл не является текстовым, поэтому я не могу редактировать там какие-либо настройки.

Почему r Java ищет jdk11, который не не существует?

...