私はUbuntuが比較的新しいので、おそらく多くの皆さんにとって標準になったコマンドをたくさん知りません。私はRをセットアップしようとしていますが、それで必要なJava依存関係をインストールしようとしています。 JGR、rjavaなど。それを行うためにかなりの数の指示を読みましたが、どういうわけか私は間違っていたに違いありません。 RとJavaの状態は次のとおりです。
R --version
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)
Java -version
Java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
R CMD javareconf
Java interpreter : /usr/bin/Java
Java version : 1.6.0_23
Java home path : /usr/lib/jvm/Java-6-openjdk/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path: /usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server:/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64:/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64:/usr/Java/packages/lib/AMD64:/usr/lib/jni:/lib:/usr/lib
JNI linker flags : -L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server -L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64 -L/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64 -L/usr/Java/packages/lib/AMD64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm
JNI cpp flags :
しかし、JGRの依存関係である「JavaGD」をRにインストールしようとすると、次のようになります。
...
checking Java support in R... present:
interpreter : '/usr/bin/Java'
cpp flags : ''
Java libs : '-L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64/server -L/usr/lib/jvm/Java-6-openjdk/jre/lib/AMD64 -L/usr/lib/jvm/Java-6-openjdk/jre/../lib/AMD64 -L/usr/Java/packages/lib/AMD64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
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.
...
どんな助けも大歓迎です。ありがとう!
私はRに精通していませんが、コンソールに基づいて、デフォルトのJavaホーム変数としてJREを持っているときにRがJDKを必要としているようです。 JDKがインストールされていることを確認するか、インストールすることをお勧めします(Sudo apt-get install openjdk-6-jdk
)。
また、Java_HOME環境変数がJREではなくJDKを指していることを確認してください(出力では、現在Javaホームパスが/usr/lib/jvm/Java-6-openjdk/jre
に設定されていることがわかります。
盲目的にopenjdk-6-jdk
をインストールしないでください。私を助けたのは、Javaのバージョンを変更することでした。幸いなことに、それを行うための素敵なUbuntuツールがあります。
Sudo update-alternatives --config Java
ここで、システムですでに使用可能なJavaを確認し、目的のJavaを設定できます。そして、openjdk-7-jdk
またはopenjdk-6-jdk
(または両方)をインストールします
そしてonlyその後実行
Sudo R CMD javareconf
Javaの選択に関する詳細は buntu's Community Wiki にあります
追伸Googleからここに来る人々のために:この投稿は、Rでのrjインストールの問題の解決に役立ちます。エラーメッセージ:R is not configured with full Java support. Please make sure an JDK is installed and run R CMD javareconf
。私がそれをしたとき、それは言った:NOTE: Your JVM has a bogus Java.library.path system property!
。だから:Javaのライブラリパスをいじる必要はありません!.
ルートとしてのR CMD javareconf
つまり、コマンドを発行するには、Sudoを使用する必要があります。
Sudo R CMD javareconf
パスワード(通常のユーザーパスワード)の入力を求められます。
Yossilesの答えは私を助けてくれましたが、初心者向けのバージョンがあり、これも この質問への答え に基づいています。
私のために働いたのはこれでした:-
1)お気に入りのtxteditorで/ etc/environmentを開きます:
Sudo gedit /etc/environment
2)「Java_HOME」とjrディレクトリを修正するためのパスを含む新しい行を追加します。Java 8の場合、次のようになります。
Java_HOME="/usr/lib/jvm/Java-8-Oracle/jre"
3)更新された環境を入手し、変数を確認します。
source /etc/environment
echo $Java_HOME
4)次のようにJava-R構成を更新します。
Sudo R CMD javareconf
5)RJava、XLConnect、または探しているJava依存のRパッケージをインストールします。
はい、 pdate-alternatives は、さまざまなJVMバージョンを維持するための最も便利なlinkingメカニズムです-Oracle/OpenJDKなどのさまざまなプロバイダーからでも。私は修正を受け入れますが、RセットアップにはJVMだけでなくJDKも必要だと思います。
R Java構成の準備の概要は次のとおりです。
/usr/lib/jvm
に正しく配置されていることを確認してくださいupdate-alternatives --install
を使用して、linkingをセットアップします。update-alternatives --configure
を使用してデフォルトのJVMを選択しますJDKがすでに正しい場所にあることを確認するには、インストールされたJVMのリストをコマンドで照会します
ls /usr/lib/jvm
フォルダーにJDKが含まれていない場合は、次のコマンドを使用して、JVMフォルダー全体を抽出されたtar.gz
(ダウンロード)から/usr/lib/jvm
に再配置します。
Sudo mv <JDK folder> /usr/lib/jvm
rは、次のJavaコマンドのために、update-alternativesの個別の端末エントリが必要です。
jdk1.8.0_51
のエントリは次のとおりです。
Sudo update-alternatives --install "/usr/bin/Java" "Java" "/usr/lib/jvm/jdk1.8.0_51/bin/Java" 2
Sudo update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/jdk1.8.0_51/bin/jar" 2
Sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_51/bin/javac" 2
Sudo update-alternatives --install "/usr/bin/javah" "javah" "/usr/lib/jvm/jdk1.8.0_51/bin/javah" 2
NB。 JVM update-alternatives --install
のjdk1.8.0_51
の実行後の出力は、次のような出力になるはずです。
update-alternatives:/usr/lib/jvm/jdk1.8.0_51/bin/Javaを使用して、自動モードで/ usr/bin/Java(Java)を提供する
必要なJVMをデフォルトとして選択するには
Sudo update-alternatives --config Java
単一のJVMのみがセットアップされている場合、次の出力がターミナルに表示されます
リンクグループJava(/ usr/bin/Javaを提供)には、/ usr/lib/jvm/jdk1.8.0_51/bin/Javaの設定が1つしかありません。
または、必要なJVMに関連するエントリ番号を選択する必要があります
正しいJVMがリンクされていることを確認するには
Java --version
最後に、Rセットアップを次のように更新します。
Sudo R CMD javareconf
JVMを「ハードワイヤ」構成する他の方法を試みた場合、このセットアップは機能していないように見えることに注意してください。