このコードを使用して、14.10 UbuntuでRにrJavaパッケージをインストールしようとしています
if (!require(rJava)) install.packages('rJava')
jdkを再インストールした後、jniの問題を含むJavaに関連するいくつかのエラーが発生し、同じコードを再度実行しようとすると、そのエラーが発生しました
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/usr/local/lib/R/site-library/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/rJava’
Warning in install.packages :
installation of package ‘rJava’ had non-zero exit status
The downloaded source packages are in
‘/tmp/RtmpfFjrp0/downloaded_packages’
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, :
there is no package called ‘rJava’
(x64の場合)それらのコマンドを実行することを提案しているほぼ全員を見つけるために、ソリューションを探しました
export LD_LIBRARY_PATH=/usr/lib/jvm/Java-8-Oracle/lib/AMD64:/usr/lib/jvm/Java-8-Oracle/jre/lib/AMD64/server
Sudo R CMD javareconf
しかし、それはうまくいきませんでした、私にできることは他にありますか?必要な詳細を提供します
RStudioでrJavaをロードしようとしたときに、同じエラーが発生していました。次の解決策は私のために働いた
1) Sudo rstudio-server stop
2) export LD_LIBRARY_PATH=/usr/lib/jvm/jre/lib/AMD64:/usr/lib/jvm/jre/lib/AMD64/default
3) Sudo rstudio-server start
上記の手順を実行した後、RStudioで以下を正常に実行できました。
> library("DBI")
> library("rJava")
> library("RJDBC")
これを解決するには、
Sudo R CMD javareconf
以下を/ etc/environmentに追加します。これは、マシンが再起動するたびに設定されます。
LD_LIBRARY_PATH =/usr/lib/jvm/default-Java/jre/lib/AMD64/server /
(パスに変更)
ソース/ etc/environment
上記のいずれも機能しない場合は、これを試して、後で感謝します(一般的な答え):)
R CMD javareconf -e
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Java_LD_LIBRARY_PATH
RStudioを開くたびに次のコマンドを実行して、同様の問題を解決しました。 rstudio実行可能ファイルを含むフォルダーに移動し、ターミナルを開いて次を入力します。
LD_LIBRARY_PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/server:open -a rstudio
もちろん、Javaバージョンに従ってパスを変更する必要があります。
前の解決策が機能しない場合は、この記事 http://allanino.me/blog/programming/installing-some-r-packages/ を読んでみてください。
この解決策でもうまくいかない場合は、ソースコードからコンパイルしてrJava
をインストールするのが最後のチャンスです。
現在誰かがここに来ている場合は、以下のアプローチを試してください:
手順:
Rの場所を見つけます。 rsession-ld-library-path
ファイルのrserver.conf
に保存されます。または、which R
を実行するだけです。通常、場所は/usr/lib64/R/lib
または/usr/lib64/Microsoft-r/3.3/lib64/R/lib
です
使用しているjreに応じて、通常libjvm.so
パスにあるusr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/server
ファイルを見つけます。 $ Java_HOME環境をチェックインします。
ln -s
Sudo ln -s /usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/server/libjvm.so /usr/lib64/Microsoft-r/3.3/lib64/R/lib/libjvm.so
を使用してシンボリックリンクを作成します
Rサーバーを再起動する
$Java_HOME
が正しい場所を指しているかどうかを確認します
echo $Java_HOME
私はopenjdkを使用していますが、$Java_HOME
が存在しないOracle-Javaフォルダを指していました。
$Java_HOME
runを修正した後
Sudo R CMD javareconf
出力を確認してください。 Java headers gen.
は/usr/bin/javah
を指す必要があります。例えば:
djhurio@Skyforger ~ $ Sudo R CMD javareconf
Java interpreter : /usr/lib/jvm/default-Java/bin/Java
Java version : 11.0.1
Java home path : /usr/lib/jvm/default-Java
Java compiler : /usr/lib/jvm/default-Java/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/lib/jvm/default-Java/bin/jar
この後、rJava
パッケージをインストールしてロードできます。