54

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 に関しては、ここにいくつかの解決策がありました。しかし、ここでソリューションをどのように使用できるかわかりません。

4

4 に答える 4

76

まったく同じ問題に遭遇しました。私の解決策は、openjdk-7-* をインストールすることでした

sudo apt-get install openjdk-7-*

それに続いて

sudo R CMD javareconf

その後、R経由でrJavaをRにインストールできましたinstall.packages("rJava")

おそらく最も洗練されたソリューションではありませんが、rJava を動作させる際の問題は解決したようです。

于 2013-05-09T02:30:57.200 に答える
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/ 
于 2014-02-01T22:12:34.303 に答える