我无法在rJava
中致电R 3.0
个套餐。我收到了以下消息
Error: package ‘rJava’ was built before R 3.0.0: please re-install it
我尝试重新安装rJava
软件包时出错。我提供了R CMD javareconf
Java interpreter : /usr/bin/java
Java version : 1.7.0_21
Java home path : /usr/lib/jvm/java-7-openjdk-i386/jre
Java compiler : /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javac
Java headers gen.: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javah
Java archive tool: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/jar
trying to compile and link a JNI progam
detected JNI cpp flags :
detected JNI linker flags :
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O2 -pipe -g -c conftest.c -o conftest.o
conftest.c:1:17: fatal error: jni.h: No such file or directory
compilation terminated.
make: *** [conftest.o] Error 1
Unable to compile a JNI program
Java library path:
JNI cpp flags :
JNI linker flags :
Updating Java configuration in /usr/lib/R
Done.
我使用的是Ubuntu 13.04。我也试过apt-get install r-cran-rjava
,这无助于解决问题。关于jni.h,有一些解决方案here.但是,我不知道如何在这里使用解决方案。
答案 0 :(得分:75)
我遇到了完全相同的问题。我的解决方案是通过
安装openjdk-7- *sudo apt-get install openjdk-7-*
跟着
sudo R CMD javareconf
然后我可以通过install.packages("rJava")
在R中安装rJava。
虽然也许不是最优雅的解决方案,但似乎解决了让rJava工作的问题。
答案 1 :(得分:27)
对于那些得到错误的人:
error: unable to load shared object '/some/dir/rJava/libs/rJava.so': libjvm.so:
cannot open shared object file: No such file or directory
我解决了在系统中定位库并将它们链接到/usr/lib
:
$sudo updatedb
$locate libjvm.so
/usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
/usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so
$sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib/
答案 2 :(得分:2)
答案 3 :(得分:0)