当前位置:  开发笔记 > 编程语言 > 正文

R:rJava包安装失败

如何解决《R:rJava包安装失败》经验,为你挑选了7个好方法。

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



1> Dirk Eddelbu..:

岂不

apt-get install r-cran-rjava

一直比较容易?你可以在useR上问我!:)


德克,你问这些问题,比如我知道我到底做了什么.如果我记得,我在使用apt-get安装Java时遇到了麻烦,所以我是从源代码构建的,这可能是我的问题的来源(所有双关语).当然,这可能只是糟糕的业力.
Ubuntu和Debian的观点是你不应该首先使用谷歌 - 它应该"正常工作"使用正确的包.让您的生活更轻松,尽可能使用套餐.我猜你也使用过Ubuntu的Java包吗?
我在R 2.15.3 ubuntu 12.04.2 64bit.当我`update.packages()`我发现有一个`rJava update`.从R内部安装失败.当我'apt-get install r-cran-rjava`时,没有可用的更新.为什么会这样?

2> JD Long..:

结果我的问题是我的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

Java中的所有内容似乎都没有,/jre但是rJava不会.奇.


在修改JAVA_HOME和java可执行文件的路径之后,我发现我需要运行`R CMD javareconf`.否则,rJava安装过程仍会看到标头,库等的旧位置.
谢谢.尽我所能确保未来的Google用户可以找到他们的R问题的答案!
通过创建一个问题来保持"堆栈溢出"的真正含义 - >回答无限循环---我喜欢它.

3> 小智..:

谢谢 - 您的建议$JAVA_HOME引导我找到类似的解决方案:

prompt$ unset JAVA_HOME

在调用R.之前



4> 小智..:

我遇到了同样的问题,它在下面运行命令后起作用.

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



5> 小智..:

这对我来说在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



6> Tejus Prasad..:

下面是我在另一篇文章中的答案之一 - 错误:刚才无法加载已安装的软件包
(这也与此问题相关)

对于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版本,用java-7-oracle替换java-8-oracle)

然后:

sudo ldconfig

重新启动RStudio,然后安装rJava包.



7> Jim Chen..:

这就是我的工作方式:

在Linux(Ubuntu 16.04)中
sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo R CMD javareconf
在R中:
install.packages("rJava")

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有