2012-06-24 91 views
4

我遇到了许多其他人似乎在某个点或另一个点上遇到的rJava问题。当R CMD INSTALL测试是否可以编译JNI程序时发生该错误。rJava无法安装(MacOS,Red Hat)

输出建议运行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 

此外,我对红帽同样的问题。我希望提供的任何修补程序也能在那里工作,但如果它不会,以及为什么它不知道,请解释。

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

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

请注意,在最后一个环节的apt-get解决方案对我没有用(我认为),除非有对于port和/或的equiv解决方案。

+0

AFAIK OS X 10.7不与JDK再出货调用R上。可能是你必须[下载](http://connect.apple。com)并手动安装。 – fotNelton

+0

这样做。具体来说,我去了你提供的链接,安装了JDK,设置了''JAVA_HOME =/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home'',输入''R CMD javareconf -ed ''然后从命令行安装rJava。非常感谢你。 – artdv

+0

在Red Hat工作也是如此。在''.bash_profile''和''sudo yum install R-devel.x86_64''中导出JAVA_HOME =/etc/alternatives/java_sdk_openjdk',然后是''sudo R CMD javareconf''和''R CMD INSTALL'' – artdv

回答

4

我使用红帽Linux 7.1

如上,我执行以下步骤

1)编辑的/ usr/lib64下我得到了同样的问题/ R/etc/Renviron并将“CPPFLAGS = $ {CPPFLAGS -'-ldl'}”添加到文件末尾

2)然后找到java home并将其设置为如下所示(set java home till/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 
> install.packages("rJava") 
> install.packages("RJDBC",dep=TRUE) 
> q() 
Save workspace image? [y/n/c]: y 
+0

为我完美工作。谢谢 –

1

我对RHEL 6.5的这个问题有一个最近的变化。我回顾了这个主题和其他许多内容。问题是在测试JNI程序的complile时没有找到动态加载模块。我的定盘插入"CPPFLAGS=${CPPFLAGS-'-ldl'}"到文件

/usr/lib64/R/etc/Renviron