正确安装和配置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-jdk
或openjdk-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配置的大纲是:
- 确保所需的JVM正确位于
/usr/lib/jvm
- 使用
update-alternatives --install
为R所需的每个JAVA命令设置链接 - 使用
update-alternatives --configure
选择默认的JVM - 刷新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,则此设置似乎无法正常工作