作者:cz小屁孩865 | 来源:互联网 | 2023-01-29 19:36
在最新版本的R(3.4.1),Mac(10.12.5)和Java VM(1.8.0_131,x86_64 :)中,我遇到了rJava的问题.
问题:
我试着按照这个指南
scottdhoover.wordpress.com/2013/03/05/a-basic-rjava-example/
能够在R中运行rJava
来自r的一些代码:
library(rJava).jinit("").jclassPath()[1]"/ Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/java"
小号<- .jnew( "爪哇/郎/字符串", "!Hello World" 的).jcall(S, "I", "长度")[1] 12
所以实际上工作..但是当我尝试使用我的文件时:
.jaddClassPath("/ Users/Camilo/Desktop/20170711_Java2R").jclassPath()[1]"/ Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/java""/ Users/Camilo/Desktop/20170711_Java2R"
myExchange <- .jnew( "myExchange")在.jnew错误( "myExchange"):抛出java.lang.ClassNotFoundException
文件myExchange.java与指南中的文件相同,位于桌面的文件夹中.
我做了什么:
基本上我试图从R安装rJava并没有工作.然后我遵循两个指南,以便能够从源加载R中的包rJava
我遵循了这个指南:
https://github.com/snowflakedb/dplyr-snowflakedb/wiki/Configuring-R-rJava-RJDBC-on-Mac-OS-X(能够加载rJava)
哪里都有
R CMD javareconf
/usr/libexec/java_home -V
看起来应该是这样.
要摆脱人们通常拥有的OpenMP问题,请遵循以下指南:
http://thecoatlessprofessor.com/programming/openmp-in-r-on-os-x/#clang-before-3-4-0(摆脱所有人都有的OpenMP问题).
最后,我使用此代码创建了一个符号链接
sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
我能够从R安装库.
但!当我从终端尝试它时,我得到了这个错误
ld: library not found for -lomp
clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’
所以我认为:库或符号链接也必须丢失..但是没有像llvm这样的文件(已经在llvm中解决了ld:找不到-lomp的库)
我知道错误"ClassNotFoundExceptions"可能与PATH有关但是应该可以在开头声明cos.
顺便说一下,我也查看看起来像这样的.R/Makevars文件
CC=/usr/local/clang4/bin/clang
CXX=/usr/local/clang4/bin/clang++
LDFLAGS=-L/usr/local/clang4/lib
任何想法如何解决?提前致谢!我希望这很清楚.