SOで以前の質問/回答を使用してこれを解決しようとしましたが、成功しませんでした。ここで、私の問題です。
私はRStudioとUbuntuボックス(14.04)を使用していますが、rJavaをソースからアップグレードしようとしましたが、その過程でそれを失いました。
を使用して再度インストールしようとしましたが、
install.packages("rJava")
次のエラーメッセージが返されました。
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.
If you don't have root privileges, run
R CMD javareconf -e
to set all Java-related variables and then install rJava.
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/darren/R/x86_64-pc-linux-gnu-library/3.2/rJava’
Warning in install.packages :
installation of package ‘rJava’ had non-zero exit status
それで、私はターミナルに行き、タイプしました、
Sudo R CMD javareconf
また、次のエラーが発生しました。
trying to compile and link a JNI program
detected JNI cpp flags :
detected JNI linker flags : -L/usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o
conftest.c:1:17: fatal error: jni.h: No such file or directory
#include <jni.h>
^
compilation terminated.
make: *** [conftest.o] Error 1
Unable to compile a JNI program
Java_HOME : /usr/lib/jvm/default-Java
Java library path:
JNI cpp flags :
JNI linker flags :
Updating Java configuration in /usr/lib/R
Done.
one と two のリンクをたどろうとしましたが、私の問題を解決できなかったようです。 SOにさらにリンクがありますが、どちらをたどるかわからない。UbuntuSoftware CenterからRStudioをアンインストールおよび再インストールしたが、これは何もしなかった差。
他の誰かが助けることができますか?
要するに、Java(jmolなど)のその他の使用を破壊することなく、rJavaでRStudioを再び使用できるようにしたいと考えています。
JDKがインストールされていないようです。少なくとも必要になります
Sudo apt-get install openjdk-7-jdk
その後、再実行
Sudo R CMD javareconf
Java_HOME
を手動で設定しないでください-それは自動的に検出されます。次のように表示されます。
$ Sudo R CMD javareconf
Java interpreter : /usr/bin/Java
Java version : 1.7.0_91
Java home path : /usr/lib/jvm/Java-7-openjdk-AMD64/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
trying to compile and link a JNI program
detected JNI cpp flags : -I$(Java_HOME)/../include
detected JNI linker flags : -L$(Java_HOME)/lib/AMD64/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/lib/jvm/Java-7-openjdk-AMD64/jre/../include -fpic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/Java-7-openjdk-AMD64/jre/lib/AMD64/server -ljvm -L/usr/lib/R/lib -lR
Java_HOME : /usr/lib/jvm/Java-7-openjdk-AMD64/jre
Java library path: $(Java_HOME)/lib/AMD64/server
JNI cpp flags : -I$(Java_HOME)/../include
JNI linker flags : -L$(Java_HOME)/lib/AMD64/server -ljvm
Sudo apt-get install r-cran-rjava
の何が問題になっていますか?
たとえば、以前の回答 とその周りの質問/スレッドを参照してください。
ゼロからインストールする場合、Sudo apt-get build-dep r-cran-rjava
から開始するよりもさらに悪化する可能性があります。 Ubuntuバージョンに対応するJDKが取得されます。
まず、ウェブサイトからRstudioをインストールすることをお勧めします。 https://www.rstudio.com/products/rstudio/download/ (つまり、Rstudio 64bit: https://download1.rstudio。 org/rstudio-0.99.489-AMD64.deb )。これは問題を直接解決しませんが、Rstudioの他のバグを回避するのに役立ちます。
エラーについては、JDKがインストールされていることを確認してください。コマンド_Java -version
_は、JDKがインストールされているかどうかを判断できないと思います。 JDK自体のパッケージを確認するか、エラーメッセージに基づいてこれを実行する必要があります。
_locate jni.h
_出力は、JAVAHOMEと一致または互換性がある必要があります。例:
_/usr/lib/jvm/Java-7-openjdk-AMD64/include/jni.h
/usr/lib/jvm/Java-7-Oracle/include/jni.h
_
更新1:_R CMD javareconf
_は$(Java_HOME)/include
の下で_jni.h
_ファイルを探していますが、JDKがインストールされていますが、 JREディレクトリに対してデフォルトのJavaが設定されている可能性が非常に高いため、エラーが発生しました。
次のコマンドを実行すると、_default-Java
_が実際に指している場所を確認できます。
_jRealDir=$(readlink -f /usr/lib/jvm/default-Java)
echo $jRealDir
# sample correct output: /usr/lib/jvm/jdk1.8.0_65
# or /usr/lib/jvm/Java-8-Oracle if you default to Oracle's
# now check jni.h
ls -l $jRealDir/include/jni.h
# sample expected output:
# /usr/lib/jvm/jdk1.8.0_65/include/jni.h
_
ls
コマンドが失敗した場合、javareconf
(およびそれ以降のrJava
)がJavaではなくJDKから使用できるようにセットアップする必要がありますJRE:次の2つのオプションがあります。
方法1:システム全体で実行する
これは便利ですが、jmol
のような他のプログラムに影響を与える可能性があります。しかし、心配しないでください。これは元に戻せます。コマンドを再実行して、古いコマンドを選択するだけです。次のコマンドを実行して、JDKがあるディレクトリを選択します。
_Sudo update-alternatives --config Java
_
jmol
がどのように機能するかをテストした後、問題なく機能する場合は、おめでとう。これで、rJavaをテストする準備ができました。そうでない場合は、以下の2番目の方法を試してください
方法2:Rに対してのみ行う
これをホームディレクトリの下の_.Rprofile
_に入れます
_Sys.setenv(Java_HOME = '/usr/lib/jvm/jdk1.8.0_65')
# this set Java_HOME for R to correct Java home dir.
_
_.Rprofile
_を更新または作成した後、RstudioでRを再起動します。この場合、_R CMD javareconf
_は失敗する可能性がありますが、RstudioのShell
メニューの下のTools
から実行する場合は問題ありません。
Ubuntuの株式レポからのインストールまたはRstudioについて。 rJava
を実行しても違いはありません。繰り返しになりますが、ホームページにはRstudioをインストールすることをお勧めします。これは、新しいバージョンにもニースの機能(つまり、私が最も気に入っているオートコンプリート)があるためです。
私はこの正確な問題に対処してきましたが、このスレッドや同様のその他の問題は解決していません。私はUbuntu 16.04にいますが、これがどのように機能するかを示しています:
apt-get install openjdk-9-jdk rm -rf /usr/lib/jvm/default-Java ln -s /usr/lib/jvm/Java-9-openjdk-AMD64/ /usr/lib/jvm/default-Java
エラーメッセージの_Java_HOME
_の場所を確認できます。
次に_locate jni.h
_を使用して_jni.h
_がどこにあるかを見つけ、次にソフトリンクを使用してこの場所を$(Java_HOME)/include
にリンクします(@biocybermanが言及したように)。
これは私がやったことです:
_ln -s /usr/lib/jvm/Java-8-openjdk-AMD64/include/jni.h /opt/conda/include/jni.h
ln -s /usr/lib/jvm/Java-8-openjdk-AMD64/include/linux/jni_md.h /opt/conda/include/jni_md.h
ln -s /usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/server/libjvm.so /usr/lib/
_
_Java_HOME
_は_/opt/conda
_であり、_jni_md.h
_と_-ljvm
_もありません。
Ubuntu _16.04
_を使用しています。