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) 

当谷歌search错误,我看到其他人都有同样的问题,但没有find一个解决办法,除了“安装整个JDK,不只是JRE”,我已经做了。

我读的另一件事是运行sudo R CMD javareconf ,它运行得非常愉快,没有错误。

任何想法我的问题是什么?

[[编辑]]我有这个问题已经有几个月了。 我最初通过编辑我的Javapath解决了这个问题,如下面我发布的答案所示。 我最近遇到了一个新的Ubuntu安装相同的问题。 我试过Dirk的build议,使用apt-get来安装rJava软件包。 它工作完美。 我最初没有意识到的是,使用Ubuntu apt-get方法安装软件包与使用R内的install.packages()加载相同的软件包有着本质的区别.Ubuntu软件包解决了一些我没有意识到或欣赏的问题。

岂不

 apt-get install r-cran-rjava 

一直更容易? 你可以问我使用R! 🙂

原来我的问题是我的JAVA_HOME环境variables的问题。 是的,我知道,令人震惊。 我的初始设置为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 

Java中的所有东西似乎没有/jre JRE,但rJava不会。 奇。

谢谢 – 关于$JAVA_HOME的build议让我有一个类似的解决scheme:

 prompt$ unset JAVA_HOME 

在调用R.之前

我遇到了同样的问题,并在运行下面的命令后,它的工作。

 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

这在Ubuntu 12.04和R版本3.0上为我工作

 cd /usr/lib/jvm/java-6-sun-1.6.0.26/include 

这是有jni.h的目录

接下来创build一个软链接到另一个需要的头文件(我懒得找出如何在下面的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 

在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位)和那些讨厌的消息远。

扬·范德梅尔

下面是我在另一个post上的答案之一 – 错误:刚刚无法加载已安装的软件包
(这也与这个问题有关)

对于Linux(Ubuntu)用户:如果您安装了oracle-java(7/8) 。 它将位于/usr/lib/jvm这个位置,并且需要sudo访问。

使用以下条目创build文件/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-oraclereplacejava-8-oracle,取决于你的java版本)

然后:

 sudo ldconfig 

重新启动RStudio,然后安装rJava软件包。

我试图安装openjdk-7- *,但仍然有问题安装rJava。 在我重新启动计算机后发生故障,完全没有问题。

所以

 sudo apt-get install openjdk-7-* RESTART after installing java, then try to install package "rJava" in R 

我做的是这里:

  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。

我在Ubuntu 16.04上遇到了类似的问题,并且可以通过在/usr/lib/jvm创build一个名为“default-java”的文件夹并将其复制到/usr/lib/jvm/java-8-oracle 。 我select了这个解决scheme来纠正JAVA_HOME环境variables,结果是没用的。

我通过下载得到它的工作: https ://cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz和运行命令R CMD安装rJava_0.9-8.tar.gz

rJava包查找/usr/lib/jvm/default-java/文件夹。 但是默认情况下不可用。 该文件夹具有为系统configuration的默认java的符号链接。

要激活默认的java,请安装以下软件包:

sudo apt-get install default-jre default-jre-headless

使用CRAN R 3.4.1testingUbuntu 17.04