124

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

4

18 回答 18

122

不会

apt-get install r-cran-rjava

更容易了吗?你可以在userR 上问我!:)

于 2010-07-24T14:31:33.160 回答
78

原来我的问题是我的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如果没有 rJava ,Java 中的一切似乎都可以正常工作。奇怪的。

于 2010-07-22T18:15:21.913 回答
26

这就是我让它工作的方式:

在 Linux 中(Ubuntu 16.04 和 20.04 工作已确认)

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

在 R 中:

install.packages("rJava")
于 2018-10-23T09:23:37.823 回答
21

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

unset JAVA_HOME

在调用 R 之前。

于 2010-12-06T07:42:03.273 回答
15

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

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上的详细信息

于 2015-03-05T05:59:25.893 回答
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
于 2013-06-25T16:16:03.330 回答
6

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

对于 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 包。

于 2015-12-02T13:25:20.210 回答
4

在 AMD64 上的 Gentoo 下运行 R。我升级到 R 2.12.0

R 版本 2.12.0 (2010-10-15) 版权所有 (C) 2010 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) 和那些讨厌的消息去了离开。

扬·范德米尔

于 2010-11-02T18:34:16.500 回答
2

我尝试安装 openjdk-7-* 但我仍然在安装 rJava 时遇到问题。结果我重新启动计算机后,完全没有问题。

所以

sudo apt-get install openjdk-7-*


RESTART after installing java, then try to install package "rJava" in R
于 2014-06-02T13:24:16.987 回答
2

对我有用的是从文件中更改 JAVA_HOME/usr/lib/R/etc/javaconf

我首先检查了我启用的 Java 版本:sudo update-alternatives --config java。在我的情况下,它是java-8-oracle

我打开文件/usr/lib/R/etc/javaconf并替换default-javajava-8-oracle

${JAVA_HOME=/usr/lib/jvm/default-java}

取而代之 :

${JAVA_HOME=/usr/lib/jvm/java-8-oracle}

接着sudo R CMD javareconf

我重新启动了 RStudio,然后可以安装 rJava。

于 2018-03-10T22:14:06.000 回答
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 上测试

于 2017-07-03T18:07:18.013 回答
1

我在这里做的是:

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

    deb http://ftp.de.debian.org/debian sid 主要

注意:rjava 应该是最新版本

2 运行:sudo apt-get update sudo apt-get install r-cran-rjava

一旦更新了旧版本的rjava,就可以安装rhdfs_1.0.8。

于 2013-12-19T13:45:46.603 回答
1

I was facing the same problem while using Windows 10. I have solved the problem using the following procedure

  1. Download Java from https://java.com/en/download/windows-64bit.jsp for 64-bit windows\Install it
  2. Download Java development kit from https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html for 64-bit windows\Install it
  3. Then right click on “This PC” icon in desktop\Properties\Advanced system settings\Advanced\Environment Variables\Under System variables select Path\Click Edit\Click on New\Copy and paste paths “C:\Program Files\Java\jdk1.8.0_201\bin” and “C:\Program Files\Java\jre1.8.0_201\bin” (without quote) \OK\OK\OK

Note: jdk1.8.0_201 and jre1.8.0_201 will be changed depending on the version of Java development kit and Java

  1. In Environment Variables window go to User variables for User\Click on New\Put Variable name as “JAVA_HOME” and Variable value as “C:\Program Files\Java\jdk1.8.0_201\bin”\Press OK

To check the installation, open CMD\Type javac\Press Enter and Type java\press enter It will show enter image description here

In RStudio run

Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")

Note: jdk1.8.0_201 will be changed depending on the version of Java development kit

Now you can install and load rJava package without any problem.

于 2019-01-16T09:28:37.650 回答
1

我通过下载使其工作:https : //cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz 并运行命令 R CMD install rJava_0.9-8.tar.gz

于 2016-09-28T19:26:18.247 回答
0

问题是 rJava 不会安装在RStudio( Version 1.0.136) 中。以下对我有用(macOS Sierra version 10.12.6)(在此处找到):

javaforosx.dmg第 1 步:从此处下载并安装

步骤 2:接下来,从 RStudio 内部运行命令:

install.packages("rJava", type = 'source')
于 2018-07-15T16:30:23.373 回答
0

假设你有 sudo 权限,而不是在包管理器使这更容易的 Ubuntu 中——我尝试了先前答案的变体,并在非 Ubuntu 的 Databricks 博客上找到了这个 gem(https://kb.databricks.com/r/install-rjava-rjdbc -libraries.html )

  1. 安装的JDK
sudo apt-get install openjdk-8-jdk
  1. 验证 libjvm.so 的路径;for me-->
cd /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64 
grep -r libjvm

输出:

Binary file server/libjvm.so matches <<<<<<<<
  1. 做java配置
    sudo R CMD javareconf
  1. 删除以前版本的包并从 RStudio 中的 CRAN 镜像安装“rJava”

  2. 重启 RStudio

  3. 在 RStudio 中验证指向 libjvm.so 的链接

    dyn.load('/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so')
    library('rJava')
于 2021-09-21T19:06:03.610 回答
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
于 2020-10-06T07:58:16.347 回答
-2

我在 Ubuntu 16.04 上遇到过类似的问题,并且能够通过在其中创建一个名为“default-java”的文件夹/usr/lib/jvm并将/usr/lib/jvm/java-8-oracle. 我选择了这个解决方案,因为纠正 JAVA_HOME 环境变量被证明是没有用的。

于 2016-07-31T11:36:20.913 回答