我已经苦恼了一段时间。当我从R安装rJava时,它会使用Java 1.6而不是1.8。我正在使用MAC OS 10.8.5,并且已经完成以下步骤:
我已经安装了R。
我的机器上有Java 1.6和1.8。
我已经使用终端重新配置了R:sudo R CMD javareconf -n
。
这是输出的结果:
Java解释器:/usr/bin/java Java版本:1.8.0_25 Java主目录路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre Java编译器:/usr/bin/javac Java头文件生成器:/usr/bin/javah Java归档工具:/usr/bin/jar OS X上的非系统Java
尝试编译和链接JNI程序
检测到JNI cpp标志:-I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin 检测到JNI链接器标志:-L$(JAVA_HOME)/lib/server -ljvm gcc -arch x86_64 -std=gnu99 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/../include/darwin -I/usr/local/include -fPIC -mtune=core2 -g -O2 -c conftest.c -o conftest.o gcc -arch x86_64 -std=gnu99 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -L/usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_25.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_25.jdk/Contents/Home/jre Java库路径:$(JAVA_HOME)/lib/server JNI cpp标志:-I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin JNI链接器标志:-L$(JAVA_HOME)/lib/server -ljvm
然后我继续使用如下方式从R中安装rJava包:
install.packages("rJava", type="source")
并且我得到了 DONE(rJava)
的结果
然后,当我使用以下命令检查版本时:
library(rJava) .jinit() .jcall("java/lang/System", "S", "getProperty", "java.runtime.version")
我仍然得到的是1.6.0_25-b17
而不是1.8
如果您知道解决方法,请告诉我。
options(java.home="/path/to/java")
吗? - Steven Beaupréjavareconf -n
什么也不做 --n
告诉它不要进行任何更改(请参阅 R 文档)。 - Simon Urbanek