R:rJava包安装失败

时间:2010-07-22 18:08:55

标签: r rjava

使用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软件包解决了一些我没有意识到或者没有意识到的问题。 。

17 个答案:

答案 0 :(得分:100)

答案 1 :(得分:72)

原来我的问题是我的JAVA_HOME环境变量的问题。是的,我知道这令人震惊。我PATHJAVA_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

详情请见 http://www-01.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.install.doc/doc/install_install_r.html

答案 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)

这就是我的工作方式:

在Linux中(Ubuntu 16.04)

sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo R CMD javareconf

in R:

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_HOME

我首先检查了我的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)

我所做的就是:

  1. 在/etc/apt/sources.list中,添加:

    deb http://ftp.de.debian.org/debian sid main

  2. 注意: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无法安装在RStudioVersion 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时,我遇到了同样的问题。我已通过以下过程解决了该问题

  1. https://java.com/en/download/windows-64bit.jsp下载Java以获得64位Windows \安装
  2. https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载Java开发工具包以用于64位Windows \安装
  3. 然后右键单击桌面\属性\高级系统设置\高级\环境变量\在系统变量下的“此PC”图标,选择路径\单击编辑\单击新建\复制并粘贴路径“ C:\ Program Files \ Java \ jdk1.8.0_201 \ bin”和“ C:\ Program Files \ Java \ jre1.8.0_201 \ bin”(不带引号)\ OK \ OK \ OK

注意:根据Java开发工具包和Java的版本,jdk1.8.0_201和jre1.8.0_201将会更改

  1. 在“环境变量”窗口中,转到“用户”的“用户变量” \单击“新建” \“将变量名称命名为” JAVA_HOME”,将变量值命名为” C:\ Program Files \ Java \ jdk1.8.0_201 \ bin” \按确定

要检查安装,请打开CMD \ Type javac \ Press Enter,然后 键入Java \按Enter 它将显示enter image description here

在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环境变量是没有用的。