2012-11-15 19 views
5

rJavaをロードしたいときにエラーが発生します。 JDKがインストールされています。 (私はCentOSのVM(ClouderaのデモVM cdh3u4)でRを実行する)rJavaをロード中にエラーが発生しました

> library(rJava) 

Error : .onLoad failed in loadNamespace() for 'rJava', details: 
    call: dyn.load(file, DLLpath = DLLpath, ...) 
    error: unable to load shared object '/home/cloudera/R/x86_64-redhat-linux-gnu-library/2.15/rJava/libs/rJava.so': 
    libjvm.so: cannot open shared object file: No such file or directory 
Error: package/namespace load failed for ‘rJava’ 

LD_LIBRARY_PATH設定に何か問題はありますか?はいの場合、どうすれば修正できますか? 後でrhdfsをインストールするためにrJavaを実行する必要があります。

いくつかのより多くの情報(必要な場合):

[[email protected] ~]$ java -version 
java version "1.6.0_31" 
Java(TM) SE Runtime Environment (build 1.6.0_31-b04) 
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode) 

答えて

10

仕事にrJavaを取得するには、コンピュータの設定に大きく依存します。以下は少なくともwindowsプラットフォームで動作しています。これがあなたのプラットフォームでも役立つかどうか試してみてください。 R JDK/JRE:

  1. あなたが使用の両方のために同じ 32ビットまたは64ビットのバージョンにあります。これの混合物は(少なくとも私にとっては)うまくいかないでしょう。
  2. 64ビットバージョンを使用している場合は、が環境変数としてJAVA_HOMEに設定されていないことを確認してください。この変数が設定されていると、rJavaは何らかの理由で動作しません。あなたがJAVA_HOMEセット(たとえば、あなたはMavenのか、他の何かのためにそれを必要とする)を持っている必要がある場合は、あなたがあなたのR-セッション内でそれを無効にすることができ

    Sys.getenv("JAVA_HOME") 
    

:あなたのJAVA_HOMEはとRの内側に設定されているかどうかを確認することができますrJavaをロードする前に次のコードを使用してください:

if (Sys.getenv("JAVA_HOME")!="") 
    Sys.setenv(JAVA_HOME="") 
library(rJava) 

これはほとんどの場合トリックを行う必要があります。さらに、これにより問題Using the rJava package on Win7 64 bit with Rも修正されます。私は環境変数をR: rJava package install failingから解除するという考えを借りました。

13

Ubuntuの場合、oracle-java(7/8)がインストールされています。この場所は/ usr/lib/jvmにあり、sudoアクセスが必要です。

次のエントリを持つファイル/etc/ld.so.conf.d/java.conf作成:

/usr/lib/jvm/java-8-oracle/jre/lib/amd64 
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server 

(あなたのJavaのバージョンに依存するJava-7-のOracleまたはJava-7-OpenJDKの-AMD64でのjava-8-神託を交換してください)

をその後

sudo ldconfig 

再起動RStudio、その後はrJavaパッケージをインストールします。

+1

'rJava'、' RWeka'、 'FSelector'などのインストール中に表示されるさまざまなエラーで私の問題をすべて解決しました。何千もの" thanks "! –

+1

これはrJavaがJVMを見つけられない本当の解決策です。私はwin7と同様の問題で取り組んだ。両方のプラットフォームで問題だったのはサーバーディレクトリです。 –

+0

あなたは私の答えここでいくつかの詳細な説明を見つけることができます - http://stackoverflow.com/a/25932828/3409405 –

関連する問題