正确安装和配置 openJDK 和 R

Mar*_*rco 7 java 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    : 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在 R 中安装“JavaGD”时,这是 JGR 的一个依赖项,我得到:

...
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.
...
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。谢谢!

yos*_*ile 6

我不熟悉 R,但根据您的控制台,R 似乎需要 JDK,而您将 JRE 作为默认 JAVA 主变量。我建议您确保已安装 JDK 或安装它 ( sudo apt-get install openjdk-6-jdk)。
还要确保您的 JAVA_HOME 环境变量指向 JDK 而不是 JRE(您可以在输出中看到当前java 主路径设置为/usr/lib/jvm/java-6-openjdk/jre.


Ada*_*ski 6

千万不要盲目安装openjdk-6-jdk。对我有帮助的是更改 Java 的版本。幸运的是,有一个很好的 Ubuntu 工具可以做到这一点:

sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)

在那里您可以看到系统上已有哪些 Java 可用,并设置所需的 Java。然后安装其中一个openjdk-7-jdkopenjdk-6-jdk(或两者)

然后运行

sudo R CMD javareconf
Run Code Online (Sandbox Code Playgroud)

有关 Java 选择的更多详细信息,请参阅Ubuntu 的社区 Wiki

PS 对于从 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 的库路径!.