R: penginstalan paket rJava gagal


116

Saat menginstal rJava menggunakan install.packages("rJava")perintah saya mendapatkan kesalahan berikut:

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’

Saya telah menginstal Java JDK dan java -versionmengembalikan yang berikut ini:

$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

Ketika mencari kesalahan di Google, saya melihat bahwa orang lain mengalami masalah yang sama tetapi tidak menemukan solusi selain "instal seluruh JDK, bukan hanya JRE" yang telah saya lakukan.

Hal lain yang saya baca adalah menjalankan sudo R CMD javareconfyang berjalan cukup bahagia tanpa kesalahan.

Ada ide apa masalah saya?

[[EDIT]] Sudah beberapa bulan sejak saya mengalami masalah ini. Saya awalnya menyelesaikan ini dengan mengedit jalur Java saya, seperti yang diilustrasikan dalam jawaban yang saya posting di bawah ini. Saya baru-baru ini mengalami masalah yang sama pada instalasi Ubuntu baru. Saya mencoba rekomendasi Dirk untuk menggunakan apt-get untuk menginstal paket rJava. Ini bekerja dengan sempurna. Apa yang gagal saya hargai pada awalnya adalah bahwa menginstal paket menggunakan metode apt-get Ubuntu pada dasarnya berbeda dari hanya memuat paket yang sama menggunakan install.packages () di dalam R. Paket Ubuntu memecahkan beberapa masalah yang tidak saya sadari atau hargai .


jawaban dapat ditemukan di sini juga - stackoverflow.com/questions/12872699/…
Tejus Prasad

1
Hanya membuat komentar di sini untuk diri saya di masa depan (karena ketika saya pasti menemukan diri saya kembali pada pertanyaan ini) bahwa saya perlu menjalankan sudo R CMD javareconf untuk mendapatkan instal apt-get agar diakui rstudio-server saya.
Jim Crozier

3
Sembilan tahun kemudian dan ini masalah yang tidak pernah berakhir. Saya mengalami ini setiap kali saya melakukan instalasi baru R. Sesuatu berubah .. OS, versi Rstudio, versi R, versi java, jdk, jre, jvm .... Dan selalu ada solusi baru untuk mengatasinya. Konyol bahwa saya tidak bisa membaca file excel tanpa semua omong kosong ini.
rmf

@rmf sekarang ada sejumlah paket membaca excel yang tidak membutuhkan Java. Untuk bacaan sederhana saya suka readxltetapi untuk menulis kembali ke Excel saya lebih suka openxlsx. Tidak membutuhkan rJava.
JD Long

Jawaban:


114

Tidak

apt-get install r-cran-rjava

lebih mudah? Anda bisa bertanya kepada saya di useR! :)


3
Inti dari Ubuntu dan Debian adalah bahwa Anda tidak perlu pergi ke Google terlebih dahulu --- itu harus "langsung bekerja" menggunakan paket yang tepat. Jadikan hidup Anda lebih mudah dan gunakan paket di mana Anda bisa. Saya kira Anda menggunakan paket Java Ubuntu juga?
Dirk Eddelbuettel

16
Dirk, Anda bertanya pertanyaan ini seperti saya tahu apa yang saya lakukan. Jika saya ingat, saya mengalami kesulitan menginstal Java menggunakan apt-get jadi saya membangun dari sumber dan itu mungkin sumber (semua permainan kata-kata yang dimaksudkan) dari masalah saya. Tentu saja itu mungkin saja karma buruk.
JD Long

2
Saya menggunakan R 2.15.3 ubuntu 12.04.2 64bit. ketika saya update.packages()mendapatkan saya perhatikan bahwa ada rJava update. Instalasi dari dalam R gagal. Ketika saya apt-get install r-cran-rjavatidak ada pembaruan yang tersedia. Mengapa ini terjadi?
ECII

1
@DirkEddelbuettel, Di Red Hat saya 'sudo yum install r-cran-rjava' tidak berfungsi. Says Loaded plugins: rhnplugin Sistem ini menerima pembaruan dari RHN Classic atau RHN Satellite. Menyiapkan Proses Penginstalan Paket r-cran-rjava tidak tersedia.
BigDataScientist

1
@DirkEdddelbuettel, sementara pendekatan 'seharusnya berfungsi' terdengar bagus bagi saya, fakta bahwa hanya begitu banyak paket yang terdaftar di r-cran-x adalah mengapa orang menggunakan cara R 'biasa' (install.packages). Selain itu, saya hanya menerima saran Anda untuk melakukannya melalui cran, yang benar-benar tidak membantu karena R 3.x sudah umum sekarang, sementara paket dalam r-cran- tampaknya sebelum R 3.x
Richard

77

Ternyata masalah saya adalah masalah dengan JAVA_HOMEvariabel lingkungan saya . Ya, mengejutkan saya tahu. Pengaturan awal saya PATHdan JAVA_HOMEterlihat seperti ini:

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

Dan saya tambahkan /jrejadi sekarang terlihat seperti ini:

export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
export PATH=$PATH:$JAVA_HOME/bin

Segala sesuatu di Jawa tampaknya bekerja dengan baik tanpa /jretetapi rJava tidak. Aneh.


5
Menjaga arti sebenarnya dari "stack overflow" dengan membuat pertanyaan -> jawaban loop tak terbatas --- Saya menyukainya.
DrewConway

10
Terima kasih. Melakukan sedikit untuk memastikan pengguna Google di masa mendatang dapat menemukan jawaban atas pertanyaan R mereka!
JD Long

11
Setelah memodifikasi JAVA_HOME dan jalur ke java dapat dieksekusi, saya merasa perlu menjalankannya R CMD javareconf. Jika tidak, proses instalasi rJava masih melihat lokasi lama dari header, dan perpustakaan, dll.
Carlos Macasaet

1
Tidak ada yang berhasil untuk saya. Saya mencoba menginstal "rJava" di server Red Hat Linux tempat saya melayani beberapa aplikasi R Shiny. Saya mendapatkan ERROR berikut: konfigurasi gagal untuk paket 'rJava' * menghapus '/ usr / lib64 / R / library / rJava'. Saya telah melakukan langkah-langkah berikut dalam proses menghilangkan kesalahan. 1. Java yang diperbarui di Linux sudo yum install java-1.7.0-openjdk 2. Setel ekspor HOME dan PATH JAVA_HOME = / usr / lib / jvm / java-1.7.0-ibm-1.7.0.6.1.x86_64 / jre ekspor PATH = $ PATH: $ JAVA_HOME / bin 3. Java yang dikonfigurasi ulang sudo / usr / bin / R CMD javareconf
BigDataScientist

Ya, berhasil, saya menggunakan 8-oracleversinya.
gunzapper

21

Terima kasih - saran Anda tentang $JAVA_HOMEmenuntun saya ke solusi serupa:

prompt$ unset JAVA_HOME

sebelum memanggil R.


1
unset JAVA_HOME (tidak ada tanda dolar)
Vladtn

1
Ya, ini memperbaiki masalah saya. Bisakah Anda menjelaskan mengapa? Terima kasih
MichaelZ

unset JAVA_HOME dan set CLASSPATH = $ CLASSPATH: / usr / lib64 / R / share / java
42n4


15

Begitulah cara saya membuatnya bekerja:

Di Linux (Ubuntu 16.04)

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

di R:

install.packages("rJava")

1
terima kasih ... Saya perlu menginstal sesuatu yang disebut rcdk di R yang jatuh karena java tidak berfungsi. Pekerjaan Anda memecahkan masalah (Ubuntu 18.04)
user1945827

Senang sekali bisa membantu!
Jim Chen

11

Ini berfungsi untuk saya di Ubuntu 12.04 dan R versi 3.0

cd /usr/lib/jvm/java-6-sun-1.6.0.26/include

ini adalah direktori yang memiliki jni.h

Selanjutnya buat tautan lunak ke file tajuk lain yang diperlukan (saya terlalu malas untuk mencari tahu cara menyertakan lebih dari satu direktori di opsi JAVA_CPPFLAGS di bawah):

sudo ln -s linux/jni_md.h .

Akhirnya

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/includememecahkan masalah untuk saya.
Moustafa Alzantot

… Dan saya akan menambahkan echo $JAVA_HOMEseandainya java-6-sunbukan direktori Anda yang sebenarnya.
isomorfisma

7

di bawah ini adalah salah satu jawaban saya di posting lain - error: tidak dapat memuat paket yang diinstal sekarang
(ini juga relevan dengan pertanyaan ini)

Untuk pengguna Linux (Ubuntu): Jika Anda telah menginstal oracle-java (7/8) . Ini akan berada di lokasi ini /usr/lib/jvmdan sudoakses diperlukan.

Buat file /etc/ld.so.conf.d/java.confdengan entri berikut:

/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server

(Ganti java-8-oracle dengan java-7-oracle tergantung pada versi java Anda)

Kemudian:

sudo ldconfig

Mulai ulang RStudio kemudian instal paket rJava.


1
Saya telah mencoba beberapa solusi dengan berbagai tingkat keberhasilan, tetapi ini adalah solusi pertama yang saya temui yang tampaknya tangguh (yaitu tidak memerlukan 5 langkah yang sama untuk diulang setiap kali saya meluncurkan R).
SamWN

4

Menjalankan R di bawah Gentoo pada AMD64. Saya meningkatkan ke R 2.12.0

R versi 2.12.0 (2010-10-15) Hak Cipta (C) 2010 The R Foundation for Statistics Computing ISBN 3-900051-07-0 Platform: x86_64-pc-linux-gnu (64-bit) dan pesan-pesan sial itu hilang jauh.

Jan Vandermeer


2

Saya mencoba menginstal openjdk-7- * tetapi masih mengalami masalah saat menginstal rJava. Ternyata setelah saya restart komputer saya, maka tidak ada masalah sama sekali.

begitu

sudo apt-get install openjdk-7-*


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

2

Paket rJava mencari file /usr/lib/jvm/default-java/ folder tersebut. Tapi itu tidak tersedia sebagai default. Folder ini memiliki symlink untuk java default yang dikonfigurasi untuk sistem.

Untuk mengaktifkan java default, instal paket berikut:

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

Diuji di ubuntu 17.04 dengan CRAN R 3.4.1


2

Apa yang berhasil untuk saya adalah mengubah JAVA_HOME dari file /usr/lib/R/etc/javaconf

Saya pertama kali memeriksa apakah versi Java saya diaktifkan: sudo update-alternatives --config java . Dalam kasus saya, itu benarjava-8-oracle

Saya membuka file /usr/lib/R/etc/javaconfdan mengganti default-javadengan java-8-oracle:

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

digantikan oleh :

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

Lalu sudo R CMD javareconf

Saya memulai ulang RStudio, dan kemudian dapat menginstal rJava.


1

apa yang saya lakukan di sini:

  1. di /etc/apt/sources.list, tambahkan:

    deb http://ftp.de.debian.org/debian sid main

Catatan: rjava harus versi terbaru

2 jalankan: sudo apt-get update sudo apt-get install r-cran-rjava

Setelah mengupdate versi lama rjava, selanjutnya dapat menginstal rhdfs_1.0.8.



1

Saya menghadapi masalah yang sama saat menggunakan Windows 10. Saya telah memecahkan masalah menggunakan prosedur berikut

  1. Unduh Java dari https://java.com/en/download/windows-64bit.jsp untuk windows 64-bit \ Instal
  2. Unduh kit pengembangan Java dari https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html untuk windows 64-bit \ Instal
  3. Kemudian klik kanan ikon "PC Ini" di desktop \ Properties \ Advanced system settings \ Advanced \ Environment Variables \ Di bawah Variabel sistem pilih Path \ Klik Edit \ Klik New \ Copy dan paste paths "C: \ Program Files \ Java \ jdk1 .8.0_201 \ bin "dan" C: \ Program Files \ Java \ jre1.8.0_201 \ bin "(tanpa tanda kutip) \ OK \ OK \ OK

Catatan : jdk1.8.0_201 dan jre1.8.0_201 akan diubah tergantung pada versi kit pengembangan Java dan Java

  1. Di jendela Variabel Lingkungan, buka Variabel pengguna untuk Pengguna \ Klik Baru \ Taruh nama Variabel sebagai "JAVA_HOME" dan nilai Variabel sebagai "C: \ Program Files \ Java \ jdk1.8.0_201 \ bin" \ Tekan OK

Untuk memeriksa instalasi, buka CMD \ Ketik javac \ Tekan Enter dan Ketik java \ tekan enter Ini akan ditampilkan masukkan deskripsi gambar di sini

Dalam menjalankan RStudio

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

Catatan : jdk1.8.0_201 akan diubah tergantung pada versi kit pengembangan Java

Sekarang Anda dapat menginstal dan memuat paket rJava tanpa masalah.


0

Masalahnya adalah rJava tidak mau diinstal di RStudio( Version 1.0.136). Berikut ini berhasil untuk saya ( macOS Sierra version 10.12.6) (ditemukan di sini ):

Langkah-1: Unduh dan instal javaforosx.dmgdari sini

Langkah-2: Selanjutnya, jalankan perintah dari dalam RStudio:

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

-2

Saya mengalami masalah serupa di Ubuntu 16.04 dan dapat menyelesaikannya dengan membuat folder bernama "default-java" /usr/lib/jvmdan menyalin ke dalamnya semua konten file /usr/lib/jvm/java-8-oracle. Saya memilih solusi ini karena mengoreksi variabel lingkungan JAVA_HOME ternyata tidak berguna.


1
Ini akan merusak default-jrepemasangan paket.
Gustavo Garcia
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.