我在centOS VM(cloudera cdh3u4)上安装rJava时遇到问题。
我先做了这个:sudo R CMD javareconf
[cloudera@localhost ~]$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.6.0_31
Java home path : /usr/java/jdk1.6.0_31/jre
Java compiler : /usr/bin/javac
Java headers gen.:
Java archive tool: /usr/bin/jar
Java library path: $(JAVA_HOME)/lib/amd64/server:$(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
Updating Java configuration in /usr/lib64/R
Done.
但是当我想安装rJava时,我就把它解决了:
> install.packages( c('rJava'),
+ repos='http://cran.revolutionanalytics.com')
...
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.
If you don't have root privileges, run
R CMD javareconf -e
to set all Java-related variables and then install rJava.
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/cloudera/R/x86_64-redhat-linux-gnu-library/2.15/rJava’
The downloaded source packages are in
‘/tmp/RtmpR5V6t5/downloaded_packages’
Warning message:
In install.packages(c("rJava"), repos = "http://cran.revolutionanalytics.com") :
installation of package ‘rJava’ had non-zero exit status
我不确定,但这是否意味着我需要安装JDK?如果是的话,你知道一个好的网站,我找到了为我的案例安装正确的JDK的分步信息吗? (我的最终目的是安装rhdfs,rjava是一个必需的依赖项)
答案 0 :(得分:3)
是的,你确实需要JDK。
对于它的价值,我的Debian / Ubuntu软件包在构建openjdk-6-jdk
软件包时会安装r-cran-rjava
。
看起来java-1.6.0-openjdk.x86_64
包应该适合您,您也可以尝试java-1.7.0-openjdk.x86_64
。
答案 1 :(得分:3)
试试这个对我有用的克服配置问题 http://www.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.install.doc/doc/install_install_r.html
我努力安装rJava并且很少学习。让我解释。 在R
中发出install package命令时install.packages("rJava")
查看R env中设置的以下变量。
检查R中的Java支持...现在:解释器: ' /usr/java/jdk1.8.0_111/jre/bin/java'存档者: ' /usr/java/jdk1.8.0_111/jre /../箱/罐'编译器: ' /usr/java/jdk1.8.0_111/jre /../仓/ javac的'标题准备: ' /usr/java/jdk1.8.0_111/jre /../仓/ JAVAH' cpp标志: ' -I / usr / lib / jvm / java / include -I / usr / lib / jvm / java / include / linux' java的 libs:' -L / usr / java / jdk1.8.0_111 / jre / lib / amd64 / server -ljvm -ldl'
我的java安装了/usr/java/jdk1.8.0_111。 验证变量指定的每个路径是否正确。接下来找你LD_LIBRARY_PATH。我认为它寻找" libjvm.so"在这条道路上。对我来说是
export LD_LIBRARY_PATH=/usr/lib/jvm/jdk1.8.0_111/jre/lib/amd64/server:/usr/lib/jvm/jdk1.8.0_111/jre/lib/amd64/
设置您的JAVA_HOME env变量
首先发出命令
R CMD javareconf -e
它将设置以下变量 JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH 修改JAVA_LIBS目录
export JAVA_LIBS="$JAVA_LIBS -ldl"
再次发出不带-e
的javareconf命令R CMD javareconf
现在进入R shell并发出rJava install命令,它应该找到所有的env变量,它应该可以工作。
答案 2 :(得分:-2)
早期版本会出现间歇性问题。镜子不是最新的,所以请访问www.rforge.net上的来源:http://www.rforge.net/rJava/files/。请使用
install.packages('rJava',,'http://www.rforge.net/')
安装。“ 这几乎是正确的。这实际上有效:
install.packages('rJava',. libPaths()[1],'http://www.rforge.net/')
“.libPaths()[1],”只是告诉R将软件包安装在主库目录中。出于某种原因,将值保留为空白不起作用,即使它应该作为默认值工作。