2012-06-24 144 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