R: การติดตั้งแพคเกจ rJava ล้มเหลว


116

เมื่อติดตั้ง rJava โดยใช้install.packages("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)

เมื่อ Googling ตรวจสอบข้อผิดพลาดฉันเห็นว่าคนอื่นกำลังมีปัญหาเดียวกัน แต่ไม่พบวิธีแก้ปัญหาอื่นนอกจาก "ติดตั้ง JDK ทั้งหมดไม่ใช่แค่ JRE" ที่ฉันได้ทำไป

สิ่งอื่นที่ฉันอ่านคือการเรียกใช้sudo R CMD javareconfซึ่งทำงานได้อย่างมีความสุขโดยไม่มีข้อผิดพลาด

มีความคิดเห็นว่าปัญหาของฉันคืออะไร?

[[แก้ไข]] ฉันพบปัญหานี้มา 2-3 เดือนแล้ว ในตอนแรกฉันได้แก้ไขสิ่งนี้โดยแก้ไขเส้นทาง Java ของฉันดังที่แสดงไว้ในคำตอบที่ฉันโพสต์ด้านล่าง ฉันเพิ่งพบปัญหาเดียวกันในการติดตั้ง Ubuntu ใหม่ ฉันลองใช้คำแนะนำของ Dirk เพื่อใช้ apt-get เพื่อติดตั้งแพ็คเกจ rJava มันทำงานได้อย่างสมบูรณ์แบบ สิ่งที่ฉันพลาดไม่ได้ในตอนแรกคือการติดตั้งแพ็คเกจโดยใช้วิธีการ apt-get ของ Ubuntu นั้นแตกต่างกันโดยพื้นฐานจากการโหลดแพ็คเกจเดียวกันโดยใช้ install.packages () ภายใน R แพ็คเกจ Ubuntu ช่วยแก้ปัญหาบางอย่างที่ฉันไม่ได้ตระหนักหรือชื่นชม .


สามารถดูคำตอบได้ที่นี่ - stackoverflow.com/questions/12872699/…
Tejus Prasad

1
เพียงแค่แสดงความคิดเห็นที่นี่ถึงตัวเองในอนาคตของฉัน (สำหรับเมื่อฉันพบว่าตัวเองกลับมาที่คำถามนี้อย่างไม่ต้องสงสัย) ว่าฉันต้องเรียกใช้ sudo R CMD javareconf เพื่อให้การติดตั้ง apt-get เป็นที่รู้จัก rstudio-server ของฉัน
Jim Crozier

3
เก้าปีต่อมาและปัญหานี้ไม่สิ้นสุด ฉันพบสิ่งนี้ทุกครั้งที่ติดตั้ง R ใหม่มีบางอย่างเปลี่ยนแปลง .. OS, Rstudio version, R version, java version, jdk, jre, jvm .... และมันเป็นวิธีแก้ปัญหาใหม่เสมอ มันไร้สาระที่ฉันไม่สามารถอ่านไฟล์ excel ได้หากไม่มีเรื่องไร้สาระทั้งหมดนี้
rmf

ตอนนี้ @rmf มีแพ็คเกจการอ่าน excel จำนวนมากที่ไม่ต้องใช้ Java สำหรับการอ่านแบบธรรมดาฉันชอบreadxlแต่สำหรับการเขียนกลับลงใน Excel ฉันชอบopenxlsxมากกว่า ไม่ต้องใช้ rJava
JD Long

คำตอบ:


114

จะไม่

apt-get install r-cran-rjava

ได้ง่ายขึ้น? คุณสามารถถามฉันได้ที่useR! :)


3
ประเด็นของ Ubuntu และ Debian คือคุณไม่ควรต้องเข้า google ตั้งแต่แรก - ควร "ใช้งานได้" โดยใช้แพ็คเกจที่เหมาะสม ทำให้ชีวิตของคุณง่ายขึ้นและใช้แพ็คเกจที่คุณสามารถทำได้ ฉันคิดว่าคุณใช้แพ็คเกจ Java ของ Ubuntu ด้วยหรือไม่?
Dirk Eddelbuettel

16
เดิร์กคุณถามคำถามเหล่านี้เหมือนฉันมีความคิดว่าฉันทำอะไรลงไป ถ้าฉันจำได้ฉันมีปัญหาในการติดตั้ง Java โดยใช้ apt-get ดังนั้นฉันจึงสร้างจากซอร์สและนั่นอาจเป็นที่มาของปัญหาของฉัน แน่นอนว่ามันอาจจะเป็นกรรมไม่ดี
JD Long

2
ฉันใช้ R 2.15.3 ubuntu 12.04.2 64 บิต เมื่อฉันupdate.packages()ได้รับฉันสังเกตเห็นว่ามีไฟล์rJava update. การติดตั้งจากภายใน R ล้มเหลว เมื่อฉันapt-get install r-cran-rjavaไม่มีการอัปเดต เหตุใดจึงเกิดขึ้น
ECII

1
@DirkEddelbuettel ใน Red Hat 'sudo yum install r-cran-rjava' ของฉันไม่ทำงาน ปลั๊กอิน Loaded กล่าวว่า: rhnplugin ระบบนี้ได้รับการอัปเดตจาก RHN Classic หรือ RHN Satellite การตั้งค่ากระบวนการติดตั้งไม่มีแพ็คเกจ r-cran-rjava พร้อมใช้งาน
BigDataScientist

1
@DirkEddelbuettel ในขณะที่วิธีการ 'ควรใช้งานได้ดี' ฟังดูดีสำหรับฉันความจริงที่ว่ามีเพียงแพ็คเกจจำนวนมากเท่านั้นที่ระบุไว้ใน r-cran-x คือสาเหตุที่ผู้คนใช้วิธี R 'ปกติ' (install.packages) ยิ่งไปกว่านั้นฉันเพิ่งรับคำแนะนำของคุณเกี่ยวกับการทำผ่าน cran ซึ่งไม่ได้ช่วยอะไรเลยเพราะตอนนี้ R 3.x เป็นกระแสหลักในขณะที่แพ็คเกจใน r-cran- เห็นได้ชัดก่อน R 3.x
Richard

77

ปรากฎว่าปัญหาของฉันคือปัญหากับ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

ทุกอย่างใน Java ดูเหมือนจะทำงานได้ดีหากไม่มี/jrerJava แต่จะทำไม่ได้ แปลก


5
การรักษาความหมายที่แท้จริงของ "stack overflow" โดยการสร้างคำถาม -> ตอบ infinite loop --- ฉันชอบมัน
DrewConway

10
ขอบคุณ ทำบิตของฉันเพื่อให้แน่ใจว่าผู้ใช้ Google ในอนาคตจะพบคำตอบสำหรับคำถาม R ของพวกเขา!
JD Long

11
หลังจากการปรับเปลี่ยน JAVA_HOME R CMD javareconfและเส้นทางไปปฏิบัติการจาวาที่ผมพบว่าผมต้องทำงาน ไม่เช่นนั้นกระบวนการติดตั้ง rJava จะยังคงเห็นตำแหน่งเก่าของส่วนหัวและไลบรารี ฯลฯ
Carlos Macasaet

1
ไม่มีอะไรทำงานสำหรับฉัน ฉันกำลังพยายามติดตั้ง "rJava" ในเซิร์ฟเวอร์ Red Hat Linux ซึ่งฉันกำลังให้บริการแอปพลิเคชัน R Shiny ฉันได้รับข้อผิดพลาดต่อไปนี้: การกำหนดค่าล้มเหลวสำหรับแพคเกจ 'rJava' * การลบ '/ usr / lib64 / R / library / rJava' ฉันได้ทำตามขั้นตอนต่อไปนี้แล้วในกระบวนการขจัดข้อผิดพลาด 1. อัปเดต Java ใน Linux sudo yum ติดตั้ง java-1.7.0-openjdk 2. ตั้งค่า HOME และ PATH export JAVA_HOME = / usr / lib / jvm / java-1.7.0-ibm-1.7.0.6.1.x86_64 / jre ส่งออก PATH = $ PATH: $ JAVA_HOME / bin 3. กำหนดค่า Java ใหม่ sudo / usr / bin / R CMD javareconf
BigDataScientist

ใช่มันใช้งานได้ฉันใช้8-oracleเวอร์ชันนี้แทน
gunzapper

21

ขอบคุณ - ข้อเสนอแนะของคุณเกี่ยวกับ$JAVA_HOMEการนำฉันไปสู่วิธีแก้ปัญหาที่คล้ายกัน:

prompt$ unset JAVA_HOME

ก่อนที่จะเรียกร.


1
unset JAVA_HOME (ไม่มีเครื่องหมายดอลลาร์)
Vladtn

1
ใช่นี่ช่วยแก้ปัญหาของฉันได้ คุณช่วยอธิบายได้ไหมว่าทำไม? ขอบคุณ
MichaelZ

ยกเลิกการตั้งค่า JAVA_HOME และตั้งค่า CLASSPATH = $ CLASSPATH: / usr / lib64 / R / share / java
42n4


15

นั่นคือวิธีที่ฉันทำให้มันได้ผล:

ใน Linux (Ubuntu 16.04)

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

ใน R:

install.packages("rJava")

1
ขอบคุณ ... ฉันต้องการติดตั้งสิ่งที่เรียกว่า rcdk ใน R ซึ่งล้มลง 'cos java ไม่ทำงาน วิธีแก้ปัญหาของคุณแก้ไขปัญหาได้ (Ubuntu 18.04)
user1945827

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

1
sudo R CMD javareconf JAVA_CPPFLAGS=-I/usr/lib/jvm/java-6-sun-1.6.0.26/includeแก้ปัญหาให้ฉัน
Moustafa Alzantot

... และฉันจะเพิ่มecho $JAVA_HOMEในกรณีที่java-6-sunไม่ใช่ไดเรกทอรีที่แน่นอนของคุณ
isomorphismes

7

ด้านล่างเป็นหนึ่งในคำตอบของฉันในโพสต์อื่น - ข้อผิดพลาด: ไม่สามารถโหลดแพ็คเกจที่ติดตั้งได้ในขณะนี้
(สิ่งนี้เกี่ยวข้องกับคำถามนี้ด้วย)

สำหรับผู้ใช้ 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-8-oracle ด้วย java-7-oracle ขึ้นอยู่กับเวอร์ชัน java ของคุณ)

แล้ว:

sudo ldconfig

รีสตาร์ท RStudio จากนั้นติดตั้งแพ็คเกจ rJava


1
ฉันได้ลองใช้วิธีแก้ปัญหาหลายวิธีด้วยระดับความสำเร็จที่แตกต่างกัน แต่นี่เป็นวิธีแก้ปัญหาแรกที่ฉันพบว่ามีความยืดหยุ่น (กล่าวคือไม่จำเป็นต้องทำซ้ำ 5 ขั้นตอนเดียวกันทุกครั้งที่เปิด R)
SamWN

4

ใช้ R ภายใต้ Gentoo บน AMD64 ฉันอัปเกรดเป็น 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) และข้อความที่น่ารำคาญเหล่านั้นไป ไป

แจนแวนเดอร์เมียร์


2

ฉันพยายามติดตั้ง openjdk-7- * แต่ยังมีปัญหาในการติดตั้ง rJava ปรากฎว่าหลังจากรีสตาร์ทคอมพิวเตอร์แล้วก็ไม่มีปัญหา แต่อย่างใด

ดังนั้น

sudo apt-get install openjdk-7-*


RESTART after installing java, then try to install package "rJava" in R

2

แพคเกจ rJava ค้นหา/usr/lib/jvm/default-java/โฟลเดอร์ แต่ไม่สามารถใช้ได้เป็นค่าเริ่มต้น โฟลเดอร์นี้มี symlink สำหรับ java เริ่มต้นที่กำหนดค่าสำหรับระบบ

ในการเปิดใช้งาน java เริ่มต้นให้ติดตั้งแพ็คเกจต่อไปนี้:

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

ทดสอบบน ubuntu 17.04 กับ CRAN R 3.4.1


2

สิ่งที่ได้ผลสำหรับฉันคือการเปลี่ยน JAVA_HOME จากไฟล์ /usr/lib/R/etc/javaconf

ก่อนอื่นฉันตรวจสอบว่า Java ของฉันเปิดใช้งานเวอร์ชันใด: sudo update-alternatives --config java. ในกรณีของฉันมันเป็นjava-8-oracle

ฉันเปิดไฟล์/usr/lib/R/etc/javaconfและแทนที่default-javaด้วยjava-8-oracle:

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

แทนที่ด้วย:

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

แล้ว sudo R CMD javareconf

ฉันรีสตาร์ท RStudio จากนั้นสามารถติดตั้ง rJava ได้


1

สิ่งที่ฉันทำอยู่ที่นี่:

  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



1

ฉันประสบปัญหาเดียวกันขณะใช้ Windows 10 ฉันได้แก้ไขปัญหาโดยใช้ขั้นตอนต่อไปนี้

  1. ดาวน์โหลด Java จากhttps://java.com/en/download/windows-64bit.jspสำหรับ Windows 64 บิตติดตั้ง
  2. ดาวน์โหลดชุดพัฒนา Java จากhttps://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlสำหรับ Windows 64 บิตติดตั้ง
  3. จากนั้นคลิกขวาที่ไอคอน "พีซีเครื่องนี้" ใน desktop \ Properties \ Advanced system settings \ Advanced \ Environment Variables \ Under ตัวแปรระบบเลือก Path \ Click Edit \ Click ที่ New \ Copy และวางเส้นทาง“ C: \ Program Files \ Java \ jdk1 .8.0_201 \ bin” และ“ C: \ Program Files \ Java \ jre1.8.0_201 \ bin” (ไม่มีเครื่องหมายคำพูด) \ OK \ OK \ OK

หมายเหตุ : jdk1.8.0_201 และ jre1.8.0_201 จะถูกเปลี่ยนแปลงโดยขึ้นอยู่กับเวอร์ชันของ Java development kit และ Java

  1. ในหน้าต่างตัวแปรสภาพแวดล้อมไปที่ตัวแปรผู้ใช้สำหรับ User \ Click ที่ New \ Put ชื่อตัวแปรเป็น“ JAVA_HOME” และค่าตัวแปรเป็น“ C: \ Program Files \ Java \ jdk1.8.0_201 \ bin” \ กดตกลง

ในการตรวจสอบการติดตั้งให้เปิด CMD \ Type javac \ Press Enter และพิมพ์ java \ press enter จะปรากฏขึ้น ใส่คำอธิบายภาพที่นี่

ใน RStudio run

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

หมายเหตุ : jdk1.8.0_201 จะถูกเปลี่ยนแปลงโดยขึ้นอยู่กับเวอร์ชันของชุดพัฒนา Java

ตอนนี้คุณสามารถติดตั้งและโหลดแพ็คเกจ rJava ได้โดยไม่มีปัญหา


0

ปัญหาคือ rJava จะไม่ติดตั้งในRStudio( Version 1.0.136) สิ่งต่อไปนี้ใช้ได้ผลสำหรับฉัน ( macOS Sierra version 10.12.6) (พบที่นี่ ):

ขั้นตอนที่ 1: ดาวน์โหลดและติดตั้งjavaforosx.dmgจากที่นี่

ขั้นตอนที่ 2: จากนั้นเรียกใช้คำสั่งจากภายใน RStudio:

install.packages("rJava", type = 'source')

-2

ฉันพบปัญหาที่คล้ายกันใน Ubuntu 16.04 และสามารถแก้ไขได้โดยสร้างโฟลเดอร์ชื่อ "default-java" ขึ้นมา/usr/lib/jvmและคัดลอกเนื้อหาทั้งหมดของไฟล์/usr/lib/jvm/java-8-oracle. ฉันเลือกใช้โซลูชันนี้เนื่องจากการแก้ไขตัวแปรสภาพแวดล้อม JAVA_HOME กลับกลายเป็นว่าไม่มีประโยชน์


1
การดำเนินการนี้จะทำให้การdefault-jreติดตั้งแพ็กเกจเสียหาย
Gustavo Garcia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.