rJava无法安装(MacOS,Red Hat)

时间:2012-06-24 06:49:37

标签: r rjava

我遇到了许多其他人似乎在某个时刻遇到的同样的rJava问题。当R CMD INSTALL测试是否可以编译JNI程序时,会发生错误。

输出建议运行R CMD javareconf -edsudo R CMD javareconf后者的输出为:

computer: home$ sudo R CMD javareconf
Java interpreter : /usr/bin/java
Java version     : 1.6.0_31
Java home path   : /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path: 
JNI linker flags : -framework JavaVM
JNI cpp flags    : -I$(JAVA_HOME)/include

Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.

然后尝试安装rJava时,

computer: home$ R CMD INSTALL ~/Downloads/rJava_0.9-4.tar.gz 
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *source* package ‘rJava’ ...
checking for gcc... gcc -arch x86_64 -std=gnu99
checking for C compiler default output file name... a.out
/* Passes all checks */
configure: checking whether gcc -arch x86_64 -std=gnu99 supports static inline...yes
checking whether setjmp.h is POSIX.1 compatible... yes
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : '-I/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/include'
java libs   : '-framework JavaVM'
checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.

Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.

ERROR: configuration failed for package ‘rJava’
* removing ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/rJava’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library/rJava’

/usr/bin/javac替换为/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home的替代尝试失败的情况完全相同。

我正在运行Mac OS 10.7.3和

computer: home$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04-415-11M3646)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-415, mixed mode)

以下内容属于.bash_profile

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

此外,我在Red-Hat上遇到同样的问题。我希望所提供的任何修复也能在那里工作,但是如果它不会以及为什么它不会被知道,请解释。

我几年来一直在使用这个网站令人难以置信的知识库,但这是我的第一篇文章。 Mucho提前感谢。

我已经浏览过的一些(不是全部)资源是

请注意,除非apt-get和/或port存在等效解决方案,否则上一个链接中的yum解决方案对我来说毫无用处(我认为)。

2 个答案:

答案 0 :(得分:5)

我正在使用Redhat Linux 7.1

我遇到了与上述相同的问题,并执行了以下步骤

1)编辑/ usr / lib64 / R / etc / Renviron并在文件末尾添加“CPPFLAGS = $ {CPPFLAGS -'- ldl'}”

2)然后找到java home并设置如下(将java home设置为/ jre)

$export JAVA_HOME=/usr/lib/jvm/java-1.7.1-ibm-1.7.1.3.10-1jpp.1.el7_1.x86_64/jre
$export PATH=$PATH:$JAVA_HOME/bin
$R CMD javareconf

3)从命令行调用R

$R
> install.packages("rJava")
> install.packages("RJDBC",dep=TRUE)
> q()
Save workspace image? [y/n/c]: y

答案 1 :(得分:1)

我最近对RHEL 6.5的同一问题进行了修改。我回顾了这个主题和其他许多内容。问题是在测试JNI程序的压缩时没有找到动态加载模块。我的修复是将"CPPFLAGS=${CPPFLAGS-'-ldl'}"插入文件

/usr/lib64/R/etc/Renviron