Masalah saat mencoba memuat paket di R karena rJava

93

Ketika saya mengetik require(xlsx)untuk memuat paket xlsxdi R, pesan berikut akan ditampilkan:

> require(xlsx)
Loading required package: xlsx
Loading required package: xlsxjars
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
Failed with error:  ‘package ‘rJava’ could not be loaded’

Saya juga mencoba memuat rJavapaket secara manual tetapi mendapat pesan kesalahan ini:

require(rJava)
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.

Apakah Anda punya saran tentang cara mengatasi masalah?

Pritam Kar
sumber
4
Cobalah untuk menginstal rJava... Baca ini
agstudy
6
Platform mana? Jika Windows maka ini mungkin membantu.
dardisco
juga, masalah Anda memungkinkan Anda untuk menyimpan file .xlsx ke csv terlebih dahulu dan kemudian menggunakan read.csv, daripada mencoba membaca di file .xlsx
generic_user
2
Jika jawaban terakhir yang terdaftar (16 suara pada saat ini) menetapkannya untuk Anda, tandai sebagai jawaban diterima.
Slak
Saya mengalami masalah ini juga, tetapi mengalihkannya dengan menggunakan readxlpaket Hadley Wickham . Diskusi lebih lanjut tentang di sini - tidak dapat menginstal libraryxlsx di r dan mencari alternatif
Ben

Jawaban:

125

Alasannya mungkin terkait dengan fakta bahwa Anda menggunakan OS 64-bit dan versi R tetapi tidak menginstal Java dengan arsitektur yang sama. Yang harus Anda lakukan adalah mengunduh Java 64-bit dari halaman ini: https://www.java.com/en/download/manual.jsp

Setelah itu coba muat ulang xlsxpaketnya. Anda tidak perlu memulai ulang R.

Gianluca
sumber
2
(+1) Saya tidak yakin apakah pesan R sepenuhnya menunjukkan masalah ini, tetapi saya yang demikian! Yang pasti bisa Anda cek. Jika Anda menjalankan OS 64 bit, dan 64 bit R, jalankan baris perintah dan coba java -d64 version. Jika Anda menggunakan Java 64 bit, ini bisa menjadi masalah jalur sistem.
AdamO
3
Apakah maksud Anda java -d64 -version?
Harrison
8

Itu karena salah satu versi Java (32 bit / 64 bit) hilang dari komputer Anda. Coba instal Jdks dan jalankan kodenya.
Setelah menginstal Jdks, buka R dan ketik kodenya

system("java -version")

Ini akan memberi Anda versi Jdk yang diinstal. Kemudian coba muat paket rJava. Ini berhasil untuk saya.

Edwin Vivek N
sumber
8

Saya memiliki masalah serupa yang berhasil bagi saya adalah menyetel JAVA_HOME. Saya lelah dulu di R:

Sys.setenv(JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_101/")

Dan ketika itu benar-benar bekerja saya mengaturnya di System Properties -> Advanced -> Variabel Lingkungan dengan menambahkan variabel Sistem baru. Saya kemudian memulai ulang R / RStudio dan semuanya bekerja.

Lauren Fitch
sumber
4

Saya memiliki masalah serupa. Ini disebabkan karena paket dependen 'rJava'. Masalah ini bisa diatasi dengan mengarahkan ulang R menggunakan yang berbeda JAVA_HOME.

if(Sys.getenv("JAVA_HOME")!=""){
    Sys.setenv(JAVA_HOME="")
}
library(rJava)

Ini berhasil untuk saya.

Arul Samuel Rajkumar
sumber
4

Jika Anda mengalami kesalahan ini di RStudio, gunakan kode lingkungan Lauren di atas dan ubah versi R Anda ke versi 32 bit di Alat, Opsi Global. Harus ada opsi R 32bit dan 64bit jika Anda memiliki versi yang lebih baru. Ini akan membutuhkan restart R, dan membatasi opsi memori Anda. Namun, menginstal jre versi 64 bit tidak diperlukan.

Odiseus Ithaca
sumber
2

Paket alternatif yang bisa Anda gunakan adalah readxl . Paket ini tidak membutuhkan ketergantungan eksternal.

Cristóbal Alcázar
sumber
2

Saya rasa saya menemukan resolusi karena saya memiliki masalah yang sama!

Perbaikan saya adalah menginstal JRE 32 bit dan 64 bit (Java Runtime Environment) versi 8 update 181. (Saya memerlukan 32 bit untuk aplikasi lain, tetapi perbaikan Anda bisa jadi hanya menginstal ulang 64 bit sendiri.)

Tamas
sumber
1

Jawaban di tautan menyelesaikan masalah saya.

Sebelum resolusi, saya mencoba dengan menambahkan JAVA_HOME ke lingkungan windows. Itu menyelesaikan kesalahan ini tetapi menciptakan masalah lain. Solusi di tautan di atas menyelesaikan masalah ini tanpa membuat masalah tambahan.

Orhan Celik
sumber