![](/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.