在centOS上安装rJava
我在centOS VM(cloudera cdh3u4)上安装rJava时遇到问题 我先做了:sudo R CMD javareconf在centOS上安装rJava,r,rjava,R,Rjava,我在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/j
[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是这方面所需的依赖项)是的,您确实需要JDK 值得一提的是,我的Debian/Ubuntu包在构建我们的
r-cran-rjava
包时安装了openjdk-6-jdk
看起来
java-1.6.0-openjdk.x86_64
包应该适合您,您也可以尝试java-1.7.0-openjdk.x86_64
早期版本会出现间歇性问题。镜像不是最新的,请转到www.rforge.net上的源代码:。请使用
install.packages('rJava','http://www.rforge.net/)
安装。”
这几乎是正确的。这实际上是有效的:
install.packages('rJava',.libpath()[1],'http://www.rforge.net/")
“.libPaths()[1]”只是告诉R将包安装在主库目录中。出于某种原因,将值留空是不起作用的,即使它应该作为默认值使用。试试这个,它对我有效克服了配置问题 我努力安装rJava,几乎没有学到什么东西。让我解释一下。 当您在R中发出install package命令时
install.packages("rJava")
在R环境中查找以下变量集
正在检查R中的Java支持。。。出席:口译员:
“/usr/java/jdk1.8.0_111/jre/bin/java”归档程序:
“/usr/java/jdk1.8.0_111/jre/。/bin/jar”编译器:
“/usr/java/jdk1.8.0_111/jre/。/bin/javac”标题准备:
“/usr/java/jdk1.8.0_111/jre/。/bin/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_路径。我认为它在这个路径中寻找“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_路径
修改JAVA_LIBS目录
export JAVA_LIBS="$JAVA_LIBS -ldl"
再次发出不带-e的javareconf命令
R CMD javareconf
现在进入R shell并发出rJava install命令,它应该找到所有的env变量,并且应该可以工作 谢谢。我安装了这个:$su-c“yum安装java-1.6.0-openjdk-devel”。但仍然存在一个错误。“正在检查JNI数据类型…配置:错误:一个或多个JNI类型与相应的本机类型不同。您可能需要使用非标准编译器标志或其他编译器来解决此问题。”如何解决JNI问题?您只是在更改存储库,这对设置java变量有何帮助?