RJava nedeniyle R'de bir paket yüklemeye çalışırken yaşanan sorunlar


94

require(xlsx)Paketi xlsxR'ye yüklemek için yazdığımda aşağıdaki mesajlar görüntüleniyor:

> 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’

rJavaPaketi manuel olarak da yüklemeyi denedim ancak şu hata mesajını aldım:

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.

Sorunu nasıl çözeceğiniz konusunda herhangi bir öneriniz var mı?


4
Yüklemeyi deneyin rJava... Oku bu
agstudy

6
Hangi platform? Windows ise, bu yardımcı olabilir.
dardisco

ayrıca, sorununuz .xlsx dosyasını okumaya çalışmak yerine, önce .xlsx dosyanızı bir
csv'ye

2
Son listelenen cevap (bu noktada 16 oy) sizin için düzelttiyse, lütfen cevabı kabul edildi olarak işaretleyin.
Slak

Ben de bu konuyla karşılaştım, ancak Hadley Wickham'ın readxlpaketini kullanarak durumu değiştirdim . Burada daha fazla tartışma - libraryxlsx'i r'ye yükleyemiyor ve bir alternatif arayamıyor
Ben

Yanıtlar:


126

Bunun nedeni muhtemelen 64 bit işletim sistemi ve R sürümü kullanmanız, ancak Java'nın aynı mimariye sahip olmamasıyla bağlantılıdır. Yapmanız gereken şey şu sayfadan Java 64-bit'i indirmek: https://www.java.com/en/download/manual.jsp

Bundan sonra xlsxpaketi yeniden yüklemeyi deneyin . R'yi yeniden başlatmanıza gerek yok.


2
(1) R'ın mesajı olmadığından emin değilim tamamen sorun olarak bu işaret, ama benim için böyleydi! Emin olmak için kontrol edebilirsiniz. 64 bit işletim sistemi ve 64 bit R kullanıyorsanız, komut satırını çalıştırın ve deneyin java -d64 version. 64 bit Java kullanıyorsanız, bu bir sistem yolu sorunu olabilir.
AdamO

3
Şunu mu demek istediniz java -d64 -version?
Harrison

8

Bunun nedeni, Java sürümlerinden birinin (32 bit / 64 bit) bilgisayarınızda eksik olmasıdır. Her iki Jdk'i de yüklemeyi deneyin ve kodu çalıştırın.
Jdk'leri kurduktan sonra R'yi açın ve kodu yazın

system("java -version")

Bu size kurulu Jdk sürümünü verecektir. Ardından rJava paketini yüklemeyi deneyin. Bu benim için çalıştı.


8

Benim için işe yarayan JAVA_HOME'u ayarlamak için benzer bir sorun yaşadım. Önce R'de yoruldum:

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

Ve gerçekten çalıştığında, onu Sistem Özellikleri -> Gelişmiş -> Ortam Değişkenleri'nde yeni bir Sistem değişkeni ekleyerek ayarladım. Daha sonra R / RStudio'yu yeniden başlattım ve her şey çalıştı.


4

Benzer bir sorun yaşadım. Bağımlı paket 'rJava'dan kaynaklanır. Bu problem, R'yi farklı bir kullanıma yönlendirerek aşılabilir JAVA_HOME.

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

Bu benim için çalıştı.


4

RStudio'da bu hatayı yaşıyorsanız, yukarıdaki Lauren'in çevre kodunu kullanın ve Araçlar, Global Seçenekler'de R sürümünüzü 32 bit sürüme değiştirin. Daha yeni bir sürüme sahipseniz hem 32bit hem de 64bit R seçenekleri olmalıdır. Bu, R'nin yeniden başlatılmasını gerektirecek ve bellek seçeneklerinizi sınırlandıracaktır. Ancak jre'nin 64 bit sürümünü yüklemek gerekmeyecektir.


2

Kullanabileceğiniz alternatif bir paket readxl'dir . Bu paket harici bağımlılıklar gerektirmez.


2

Sanırım aynı sorunu yaşadığım için çözümü buldum!

Benim düzeltmem hem 32 bit hem de 64 bit JRE (Java Runtime Environment) sürüm 8 güncelleme 181'i kurmaktı. (Başka bir uygulama için 32 bit gerekiyor, ancak düzeltmeniz 64 bit'i kendi başına yeniden yüklemek olabilir.)


1

İçinde cevap bağlantısını sorunumu çözdü.

Çözümlemeden önce, Windows ortamlarına JAVA_HOME ekleyerek denedim. Bu hatayı çözdü, ancak başka bir sorun yarattı. Yukarıdaki bağlantıdaki çözüm, ek sorunlar yaratmadan bu sorunu çözer.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.