![](/img/trans.png)
[英]Failing to install rJava package in R with error “bootstrap class path not set in conjunction with -source 1.4”
[英]R: rJava package install failing
使用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 软件包解决了一些我没有意识到或没有意识到的问题.
不会
apt-get install r-cran-rjava
更容易了? 你可以在useR 上问我! :)
原来我的问题是我的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 则不行。 奇怪的。
这就是我让它工作的方式:
sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo R CMD javareconf
install.packages("rJava")
谢谢 - 您对$JAVA_HOME
的建议使我找到了类似的解决方案:
unset JAVA_HOME
在调用 R 之前。
我遇到了同样的问题,它在运行下面的命令后工作。
export JAVA_LIBS="$JAVA_LIBS -ldl"
R CMD javareconf
这在 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
以下是我在另一篇文章中的回答之一 - 错误:现在无法加载已安装的软件包
(这也与这个问题有关)
对于 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-8-oracle 替换为 java-7-oracle)
然后:
sudo ldconfig
重新启动 RStudio,然后安装 rJava 包。
在 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 位)和那些讨厌的消息离开。
扬·范德米尔
我尝试安装 openjdk-7-* 但仍然在安装 rJava 时遇到问题。 结果我重新启动计算机后,就完全没有问题了。
所以
sudo apt-get install openjdk-7-*
RESTART after installing java, then try to install package "rJava" in R
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 上测试
对我/usr/lib/R/etc/javaconf
是从文件/usr/lib/R/etc/javaconf
更改 JAVA_HOME
我首先检查了我启用的 Java 版本: sudo update-alternatives --config java
。 就我而言,它是java-8-oracle
我打开了文件/usr/lib/R/etc/javaconf
并用java-8-oracle
替换了default-java
:
${JAVA_HOME=/usr/lib/jvm/default-java}
取而代之 :
${JAVA_HOME=/usr/lib/jvm/java-8-oracle}
然后sudo R CMD javareconf
我重新启动了 RStudio,然后可以安装 rJava。
我在这里做的是:
在 /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。
我通过下载使其工作: https ://cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz 并运行命令 R CMD install rJava_0.9-8.tar.gz
我在使用 Windows 10 时遇到了同样的问题。我已经使用以下过程解决了这个问题
注意:jdk1.8.0_201 和 jre1.8.0_201 会根据 Java 开发包和 Java 的版本而改变
要检查安装,请打开 CMD\\Type javac\\Press Enter 并键入 java\\press enter 它将显示
在 RStudio 中运行
Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")
注意:jdk1.8.0_201会根据Java开发包的版本而变化
现在您可以毫无问题地安装和加载 rJava 包。
在 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
假设你有 sudo 权限,而不是在包管理器使这更容易的 Ubuntu 中——我尝试了先前答案的变体,并在非 Ubuntu 的 Databricks 博客上找到了这个 gem ( https://kb.databricks.com/r/install-rjava-rjdbc -libraries.html )
sudo apt-get install openjdk-8-jdk
for me-->
cd /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
grep -r libjvm
输出:
Binary file server/libjvm.so matches <<<<<<<<
sudo R CMD javareconf
删除先前版本的软件包并从 RStudio 的 CRAN 镜像中安装“rJava”
重启 RStudio
在 RStudio 中验证指向 libjvm.so 的链接
dyn.load('/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so')
library('rJava')
我遇到在Ubuntu 16.04类似的问题,并能够通过创建一个名为“默认Java”的文件夹来解决它/usr/lib/jvm
,并复制到它的所有内容的/usr/lib/jvm/java-8-oracle
。 我选择了这个解决方案,因为纠正 JAVA_HOME 环境变量没有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.