使用install.packages("rJava")
命令安装rJava时出现以下错误:
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : '-I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include/linux'
java libs : '-L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/server -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64 -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/amd64 -L -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’
我安装了Java JDK,java -version
返回以下内容:
$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
当谷歌搜索错误时,我发现其他人遇到了同样的问题,但没有找到除“安装整个JDK,而不仅仅是JRE”之外的解决方案。
我读到的另一件事是运行sudo R CMD javareconf
,它运行得非常愉快,没有任何错误。
任何想法我的问题是什么?
[[编辑]] 我遇到这个问题已经有几个月了。我最初通过编辑我的Java路径解决了这个问题,如下面发布的答案所示。我最近在新的Ubuntu安装上遇到了同样的问题。我尝试了Dirk的建议,使用apt-get来安装rJava包。它工作得很好。我最初没有意识到的是,使用Ubuntu apt-get方法安装软件包与使用R中的install.packages()加载相同的软件包根本不同.Ubuntu软件包解决了一些我没有意识到或者没有意识到的问题。 。
答案 0 :(得分:100)
答案 1 :(得分:72)
原来我的问题是我的JAVA_HOME
环境变量的问题。是的,我知道这令人震惊。我PATH
和JAVA_HOME
的初始设置如下所示:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin
我添加了/jre
所以它现在看起来像这样:
export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
export PATH=$PATH:$JAVA_HOME/bin
如果没有/jre
,Java中的所有内容似乎都能正常工作,但rJava却没有。奇。
答案 2 :(得分:20)
谢谢 - 您对$JAVA_HOME
的建议引导我找到类似的解决方案:
prompt$ unset JAVA_HOME
在调用R。
之前答案 3 :(得分:14)
我遇到了同样的问题,它在下面运行命令后起作用。
export JAVA_LIBS="$JAVA_LIBS -ldl"
R CMD javareconf
答案 4 :(得分:11)
这对我在Ubuntu 12.04和R 3.0版本上起作用
cd /usr/lib/jvm/java-6-sun-1.6.0.26/include
这是具有jni.h的目录
接下来创建一个指向另一个必需头文件的软链接(我太懒了,不知道如何在下面的JAVA_CPPFLAGS选项中包含多个目录):
sudo ln -s linux/jni_md.h .
最后
sudo R CMD javareconf JAVA_CPPFLAGS=-I/usr/lib/jvm/java-6-sun-1.6.0.26/include
答案 5 :(得分:7)
下面是我在另一篇文章中的答案之一 - error: unable to load installed packages just now
(这也与这个问题有关)
对于Linux(Ubuntu)用户:如果安装了oracle-java (7/8)。它将在此位置/usr/lib/jvm
并且sudo
访问权限。
使用以下条目创建文件/etc/ld.so.conf.d/java.conf
:
/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
(用java-7-oracle替换java-8-oracle取决于你的java版本)
然后:
sudo ldconfig
重新启动RStudio,然后安装rJava包。
答案 6 :(得分:4)
在AMD64上运行Gentoo下的R.我升级到R 2.12.0
R版本2.12.0(2010-10-15) 版权所有(C)2010 R统计计算基金会 ISBN 3-900051-07-0 平台:x86_64-pc-linux-gnu(64位) 那些讨厌的消息消失了。
Jan Vandermeer
答案 7 :(得分:4)
这就是我的工作方式:
sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo R CMD javareconf
install.packages("rJava")
答案 8 :(得分:2)
我尝试安装openjdk-7- *但我仍然遇到安装rJava的问题。在我重新启动计算机后,原来没有任何问题。
所以
sudo apt-get install openjdk-7-*
RESTART after installing java, then try to install package "rJava" in R
答案 9 :(得分:2)
rJava包查找/usr/lib/jvm/default-java/
文件夹。但它不是默认的。此文件夹具有为系统配置的默认java的符号链接。
要激活默认的java安装,请使用以下软件包:
sudo apt-get install default-jre default-jre-headless
使用CRAN R 3.4.1在ubuntu 17.04上测试
答案 10 :(得分:2)
对我有用的是从文件/usr/lib/R/etc/javaconf
我首先检查了我的Java版本:sudo update-alternatives --config java
。
就我而言,它是java-8-oracle
我打开文件/usr/lib/R/etc/javaconf
并将default-java
替换为java-8-oracle
:
${JAVA_HOME=/usr/lib/jvm/default-java}
替换为:
${JAVA_HOME=/usr/lib/jvm/java-8-oracle}
然后sudo R CMD javareconf
我重新启动了RStudio,然后可以安装rJava。
答案 11 :(得分:1)
我所做的就是:
在/etc/apt/sources.list中,添加:
deb http://ftp.de.debian.org/debian sid main
注意:rjava应该是最新版本
2运行: sudo apt-get update sudo apt-get install r-cran-rjava
更新旧版本的rjava后,可以安装rhdfs_1.0.8。
答案 12 :(得分:1)
我通过下载:https://cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz并运行命令R CMD install rJava_0.9-8.tar.gz
来实现它的工作答案 13 :(得分:0)
问题是rJava无法安装在RStudio
(Version 1.0.136
)中。以下内容对我有用(macOS Sierra version 10.12.6
)(找到here):
第1步:从here下载并安装javaforosx.dmg
步骤2:接下来,从RStudio内部运行命令:
install.packages("rJava", type = 'source')
答案 14 :(得分:0)
在使用Windows 10时,我遇到了同样的问题。我已通过以下过程解决了该问题
注意:根据Java开发工具包和Java的版本,jdk1.8.0_201和jre1.8.0_201将会更改
要检查安装,请打开CMD \ Type javac \ Press Enter,然后 键入Java \按Enter 它将显示
在RStudio中运行
Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")
注意:jdk1.8.0_201将根据Java开发套件的版本进行更改
现在,您可以毫无问题地安装和加载rJava软件包。
答案 15 :(得分:0)
在Arch Linux上,我需要安装openjdk-src
才能使JNI路径正常工作。
换句话说,这些是我在sudo R CMD javareconf
成功运行之前需要安装的软件包:
local/jdk-openjdk 14.0.2.u12-1
OpenJDK Java 14 development kit
local/jre-openjdk 14.0.2.u12-1
OpenJDK Java 14 full runtime environment
local/jre-openjdk-headless 14.0.2.u12-1
OpenJDK Java 14 headless runtime environment
local/openjdk-src 14.0.2.u12-1
OpenJDK Java 14 sources
答案 16 :(得分:-2)
我在Ubuntu 16.04上遇到过类似的问题,并且能够通过在/usr/lib/jvm
中创建一个名为“default-java”的文件夹并将/usr/lib/jvm/java-8-oracle
的所有内容复制到其中来解决它。我选择了这个解决方案,因为纠正JAVA_HOME环境变量是没有用的。