web-dev-qa-db-ja.com

openJDKとRの正しいインストールと設定

私は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.
...

どんな助けも大歓迎です。ありがとう!

7
Marco

私は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に設定されていることがわかります。

6
yossile

盲目的に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のライブラリパスをいじる必要はありません!.

5
Adam Ryczkowski

ルートとしてのR CMD javareconf

つまり、コマンドを発行するには、Sudoを使用する必要があります。

Sudo R CMD javareconf

パスワード(通常のユーザーパスワード)の入力を求められます。

2
user unknown

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パッケージをインストールします。

0
emilBeBri

はい、 pdate-alternatives は、さまざまなJVMバージョンを維持するための最も便利なlinkingメカニズムです-Oracle/OpenJDKなどのさまざまなプロバイダーからでも。私は修正を受け入れますが、RセットアップにはJVMだけでなくJDKも必要だと思います。

R Java構成の準備の概要は次のとおりです。

  1. 必要なJVMが/usr/lib/jvmに正しく配置されていることを確認してください
  2. rに必要なJavaコマンドごとにupdate-alternatives --installを使用して、linkingをセットアップします。
  3. update-alternatives --configureを使用してデフォルトのJVMを選択します
  4. r構成を更新します

JDKがすでに正しい場所にあることを確認するには、インストールされたJVMのリストをコマンドで照会します

ls /usr/lib/jvm

フォルダーにJDKが含まれていない場合は、次のコマンドを使用して、JVMフォルダー全体を抽出されたtar.gz(ダウンロード)から/usr/lib/jvmに再配置します。

Sudo mv <JDK folder> /usr/lib/jvm

rは、次のJavaコマンドのために、update-alternativesの個別の端末エントリが必要です。

  • インタープリター: '/ usr/bin/Java'
  • アーカイバ: '/ usr/bin/jar'
  • コンパイラ: '/ usr/bin/javac'
  • ヘッダー準備: '/ usr/bin/javah'

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 --installjdk1.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を「ハードワイヤ」構成する他の方法を試みた場合、このセットアップは機能していないように見えることに注意してください。

0
TrevorL