EclipseでRコンソールを実行しようとすると、次のエラーが表示されました。
_....Please make sure that R package 'rj' (1.1 or compatible) is installed...
_
だから私はこのようにRコンソールにインストールしようとしました:
_install.packages(c("rj", "rj.Gd"), repos="http://download.walware.de/rj-1.1")
_
このエラーが発生しました:
_ ** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rj.Gd', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rj.Gd/libs/rj.Gd.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
_
そして、次を使用してrJavaをインストールすると、install.packages("rJava")
が同様のエラーを取得することがわかりました。
_** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
_
_Sudo R CMD javareconf
_を実行すると、次の出力が得られました。
_Java interpreter : /usr/bin/Java
Java version : 1.7.0
Java home path : /usr/lib/jvm/Java-7-Oracle/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
NOTE: Your JVM has a bogus Java.library.path system property!
Trying a heuristic via Sun.boot.library.path to find jvm library...
Java library path: $(Java_HOME)/lib/AMD64:$(Java_HOME)/lib/AMD64/server
JNI linker flags : -L$(Java_HOME)/lib/AMD64 -L$(Java_HOME)/lib/AMD64/server -ljvm
JNI cpp flags : -I$(Java_HOME)/../include -I$(Java_HOME)/../include/linux
Updating Java configuration in /etc/R
Done.
_
ところで、私の構成は次のとおりです。
_Ubuntu 11.10 64bit
Eclipse 3.7
Oracle-1.7-jdk
R version 2.15.1
_
私は解決策を見つけました:
export LD_LIBRARY_PATH=/usr/lib/jvm/Java-7-Oracle/lib/AMD64:/usr/lib/jvm/Java-7-Oracle/jre/lib/AMD64/server
それから
Sudo R CMD javareconf
注:パス(Java-7-Oracle)は、Javaインストールに基づいて更新する必要があります。
Linux(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-8-OracleをJava-7-Oracleに置き換えます)
次に:
Sudo ldconfig
RStudioを再起動してから、rJavaパッケージをインストールします。
OR
また、代替方法として、LD_LIBRARY_PATH
をJavaコマンドから取得したライブラリパスR CMD javareconf -e
]でエクスポートし、install.packages
を実行する方法もあります。
私は同様の問題を得て、実行することでそれを解決することができました
R CMD javareconf -e
R CMD javareconf -eの出力
Java interpreter : /export/apps/jdk/JDK-1_6_0_27/jre/bin/Java
Java version : 1.6.0_27
Java home path : /export/apps/jdk/JDK-1_6_0_27
Java compiler : /export/apps/jdk/JDK-1_6_0_27/bin/javac
Java headers gen.: /export/apps/jdk/JDK-1_6_0_27/bin/javah
Java archive tool: /export/apps/jdk/JDK-1_6_0_27/bin/jar
Java library path: /export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64/server -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64 -L/export/apps/jdk/JDK-1_6_0_27/jre/../lib/AMD64 -L/usr/Java/packages/lib/AMD64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags : -I/export/apps/jdk/JDK-1_6_0_27/include -I/export/apps/jdk/JDK-1_6_0_27/include/linux
The following Java variables have been exported:
Java_HOME Java JAVAC JAVAH JAR Java_LIBS Java_CPPFLAGS Java_LD_LIBRARY_PATH
Running: /bin/bash
上記の出力に示すように、LD_LIBRARY_PATH
をJava_LD_LIBRARY_PATH
と同じ値に設定した後。 rjをインストールできました。
export LD_LIBRARY_PATH=/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/AMD64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib64:/lib64:/lib:/usr/lib
Rを実行してからrjをインストールします
install.packages(c("rj", "rj.Gd"), repos="http://download.walware.de/rj-1.1")
私は次のことを行い、それは私のために働いた:
export LD_LIBRARY_PATH=$Java_LD_LIBRARY_PATH
Sudo R CMD javareconf
Rも再起動する必要がありました。
数年後、OracleのJavaへの移行が必要なパッケージのインストールに失敗した後、Rによって報告されたエラーを検索した後、この質問に行き着きました。
それを修正するために私がしなければならなかったすべては:
$ Sudo R CMD javareconf
または単にRにライブラリを設定しますか?
私はRでこのコマンドを実行しました:
Sys.setenv(Java_HOME='/usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/server')
( "/ usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/server"をJava "Sudo R CMD javareconf ")
最もエレガントなソリューションではないかもしれませんが、私にとってはうまくいきました!
Sudo apt-get install jdk-*
で修正できるjdkがインストールされていませんでした。その後、Sudo R CMD javareconf
を実行すると、以前に常にエラーメッセージが表示されていました。すべてが正しく設定され、必要な場合は手動での週は不要であり、その後、パッケージのインストールはRでスムーズに実行されました(再起動が必要).
上記のどれもうまくいきませんでした。LinuxUbuntuにrJava
を問題なくインストールした唯一の解決策は、ベースRのインストール後にRScript
コマンドを渡すことでした。
$ Sudo Rscript -e 'install.packages("rJava", repos = "http://cran.r-project.org/")'
これにより、LD_LIBRARY_PATHの問題が修正されます(Linux、Debian 7.1.0、tc-Shell、Rバージョン3.0.2):
この行を.cshrcに追加します。
setenv LD_LIBRARY_PATH $ Java_HOME/jre/lib/AMD64:$ Java_HOME/jre/lib/AMD64/server
このコマンドを〜/ .loginに追加するだけでは不十分です。環境変数LD_LIBRARY_PATHは、新しいxtermではまだ不明でした:echo $ LD_LIBRARY_PATH:LD_LIBRARY_PATH:未定義変数。 (なぜ??)
奇妙なことに、Rをスーパーユーザーとして起動したとき、libjvm.soを見つけることに問題はありませんでした。
欠落しているlimjvm.so
エラーに直面した場合、/etc/R
の構成に対して/usr/lib/R/etc
の標準構成から正しいldpaths
が選択されることを確認してください。
RをSudoで実行し、install.packages('rJava`)
を実行することでこれを修正しました。