7

rJava をロードしようとするとエラーが発生します。JDKがインストールされています。(CentOS VM (cloudera demo vm cdh3u4) で R を実行しています)

> 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が必要です。

その他の情報 (必要な場合):

[cloudera@localhost ~]$ 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)
4

2 に答える 2

12

rJava を機能させるには、コンピューターの構成に大きく依存します。以下は、少なくともWindowsプラットフォームで動作しています。これがあなたのプラットフォームでも役立つかどうか、試してみることができます。

  1. RとJDK/JREの両方に同じ32 ビットまたは 64 ビット バージョンを使用する必要があります。これの混合は決してうまくいきません(少なくとも私にとっては)。
  2. 64 ビット版を使用する場合は、JAVA_HOMEを環境変数として設定していないことを確認してください。この変数が設定されている場合、rJava は何らかの理由で機能しません。JAVA_HOME が R 内に設定されているかどうかを確認するには、次のコマンドを使用します。

    Sys.getenv("JAVA_HOME")
    

JAVA_HOME を設定する必要がある場合 (たとえば、maven などで必要な場合)、rJava をロードする前に、次のコードを使用して R セッション内で無効にすることができます。

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

ほとんどの場合、これでうまくいくはずです。さらに、これにより、Win7 64 ビットで R を使用して rJava パッケージを使用する際の問題も修正されます。R: rJava package install failingから環境変数の設定を解除するというアイデアを借りました。

于 2013-04-14T11:43:16.973 に答える