简体   繁体   中英

how to remove error message in mac relate to rJava

I have install rJava package in R and I also install Java 64 bit on my mac but somehow I am keep getting error message when I try to load rJava package.

library(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 '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so':
  dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib/server/libjvm.dylib
  Referenced from: /Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so
  Reason: image not found

I tried all sort of things that I can possibly do. I tried to insert sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib in terminal

I also tried Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre')

dyn.load(paste0(system2('/usr/libexec/java_home',stdout = TRUE), '/jre/lib/server/libjvm.dylib'))
dir(paste0(system2('/usr/libexec/java_home',stdout=TRUE)))

but they all doesn't work for me Keep getting same error message as above. can someone plz help me. Thanks

I faced the same issue on my Mac. For Java 9 the path is different compared to the one you posted.

sudo ln -f -s $(/usr/libexec/java_home)/lib/server/libjvm.dylib /usr/local/lib

And also below to update R.

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/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM