无法在Ubuntu 13.04中的R 3.0中安装rJava

vin*_*nux 53 java ubuntu java-native-interface r rjava

我不能叫rJavaR 3.0.我收到以下消息

Error: package ‘rJava’ was built before R 3.0.0: please re-install it
Run Code Online (Sandbox Code Playgroud)

我试图重新安装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.
Run Code Online (Sandbox Code Playgroud)

我正在使用Ubuntu 13.04.我也尝试过apt-get install r-cran-rjava没有帮助解决这个问题.关于jni.h,这里有一些解决方案.但是,不知道我怎么能在这里使用解决方案.

Pet*_*ter 74

我遇到了完全相同的问题.我的解决方案是安装openjdk-7-*via

sudo apt-get install openjdk-7-*
Run Code Online (Sandbox Code Playgroud)

跟着那个

sudo R CMD javareconf
Run Code Online (Sandbox Code Playgroud)

然后我就可以在R via中安装rJava了install.packages("rJava").

虽然也许不是最优雅的解决方案,但似乎已经解决了让rJava工作的问题.

  • 对我来说没有运气:前两步没有错误运行,然后在`install.packages`我得到:`错误:无法加载共享对象'/home/cboettig/R/x86_64-pc-linux-gnu-library/3.0/ rJava/libs/rJava.so':``libjvm.so:无法打开共享对象文件:没有这样的文件或目录`.有任何想法吗? (9认同)
  • 我遇到了同样的问题 - 没有用.最后发现在安装Java 1.7之后,我不得不告诉Ubuntu将其用作默认值 - 请参阅[here](http://askubuntu.com/questions/64329/how-to-replace-openjdk-6-with-openjdk- 7) - 使用`update-java-alternatives -l`获取安装的java版本列表,并将`sudo update-java-alternatives -s java-1.7.0-openjdk-i386`默认为1.7.在此之后,`sudo R CMD javareconf`运行没有错误,我能够'install.packages("rJava")` (7认同)
  • 对于那些最近看这个的人来说,尝试`sudo apt-get install openjdk-8-*` (4认同)
  • 谢谢.有效.我昨天尝试安装java.我也尝试过Oracle Java,但没有用.不确定我是在安装JRE还是重新启动了. (2认同)

kah*_*hlo 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
Run Code Online (Sandbox Code Playgroud)

我解决了在系统中定位库并将它们链接到的错误/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/ 
Run Code Online (Sandbox Code Playgroud)