正确安装和配置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 : 

但是当我尝试在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. ... 

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

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

一个人不应盲目安装openjdk-6-jdk 。 帮助我的是改变Java的版本。 幸运的是,有一个很好的Ubuntu工具:

 sudo update-alternatives --config java 

在那里你可以看到,Javas已经在系统中可用,并设置了所需的Javas。 然后安装openjdk-7-jdkopenjdk-6-jdk (或两者)

然后

 sudo R CMD javareconf 

关于Java选择的更多细节在Ubuntu的社区Wiki上

PS对于来自谷歌的人来说:除其他事项外,这篇文章有助于解决R中rj instalation的问题,并显示错误消息: R is not configured with full Java support. Please make sure an JDK is installed and run R CMD javareconf 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作为root

意味着,您必须使用sudo来发出命令:

 sudo R CMD javareconf 

系统会要求您输入密码(您的普通用户密码)。

Yossiles的回答帮助了我,但这里是新手友好的版本,它也借鉴了这个问题的答案 。

对我有用的是: –

1)在你最喜欢的txteditor中打开/ etc / environment:

 sudo gedit /etc/environment 

2)添加一个带有“JAVA_HOME”的新行和修正jr-directory的路径,对于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-package。

是的, update-alternatives是维护不同JVM版本的最方便的链接机制 – 甚至来自Oracle / OpenJDK等不同的提供商。 我愿意接受更正,但我会说需要一个JDK而不仅仅是一个用于R设置的JVM。

准备R JAVA配置的大纲是:

  1. 确保所需的JVM正确位于/usr/lib/jvm
  2. 使用update-alternatives --install为R所需的每个JAVA命令设置链接
  3. 使用update-alternatives --configure选择默认的JVM
  4. 刷新R配置

要确保JDK已位于正确的位置,请使用该命令查询已安装的JVM列表

 ls /usr/lib/jvm 

如果该文件夹不包含JDK,则使用以下命令将整个JVM文件夹从提取的tar.gz (下载)重新定位到/usr/lib/jvm

 sudo mv  /usr/lib/jvm 

对于以下JAVA命令,R需要用于update-alternatives的单独终端条目:

  • 解释器:’/ usr / bin / java’
  • archiver:’/ 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。 执行update-alternatives --install后的输出jdk1.8.0_51 update-alternatives --install应该类似于输出:

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无需配置。

或者,必须选择所需JVM的相关条目#

检查是否链接了正确的JVM

 java --version 

最后,使用以下命令更新R设置:

 sudo R CMD javareconf 

请注意,如果您尝试了其他方法来“硬连线”配置JVM,则此设置似乎无法正常工作