Sự cố khi cố gắng tải một gói trong R do rJava


93

Khi tôi nhập require(xlsx)để tải gói xlsxtrong R, các thông báo sau được hiển thị:

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

Tôi cũng đã cố gắng tải rJavagói theo cách thủ công nhưng nhận được thông báo lỗi này:

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.

Bạn có gợi ý nào về cách giải quyết vấn đề không?


4
Cố gắng cài đặt rJava... Đọc này
agstudy

6
Nền tảng nào? Nếu Windows thì điều này có thể hữu ích.
dardisco

cũng có, vấn đề của bạn cho phép bạn đầu tiên lưu file .xlsx của bạn đến một csv và sau đó sử dụng read.csv, hơn là cố gắng đọc trong file .xlsx
generic_user

2
Nếu câu trả lời được liệt kê cuối cùng (16 phiếu bầu tại thời điểm này) đã sửa nó cho bạn, vui lòng đánh dấu câu trả lời là được chấp nhận.
Slak

Tôi cũng gặp phải vấn đề này, nhưng đã chuyển hướng bằng cách sử dụng readxlgói của Hadley Wickham . Thảo luận nhiều hơn về đây - không thể cài đặt libraryxlsx trong r và nhìn cho một sự thay thế
Ben

Câu trả lời:


123

Nguyên nhân có thể liên quan đến việc bạn đang sử dụng hệ điều hành 64 bit và phiên bản R nhưng không được cài đặt Java với cùng kiến ​​trúc. Những gì bạn phải làm là tải xuống Java 64-bit từ trang này: https://www.java.com/en/download/manual.jsp

Sau đó chỉ cần thử tải lại xlsxgói. Bạn không cần phải khởi động lại R.


2
(+1) Tôi không chắc liệu tin nhắn của R có hoàn toàn chỉ ra đây là vấn đề hay không, nhưng đó là trường hợp của tôi! Để chắc chắn, bạn có thể kiểm tra. Nếu bạn đang chạy hệ điều hành 64 bit và 64 bit R, hãy chạy dòng lệnh và thử java -d64 version. Nếu bạn đang sử dụng Java 64 bit, đó có thể là sự cố đường dẫn hệ thống.
AdamO

3
Ý bạn là java -d64 -version?
Harrison ngày

8

Tôi đã gặp sự cố tương tự, điều phù hợp với tôi là đặt JAVA_HOME. Tôi mệt mỏi nó đầu tiên trong R:

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

Và khi nó thực sự hoạt động, tôi đặt nó trong Thuộc tính hệ thống -> Nâng cao -> Biến môi trường bằng cách thêm một biến Hệ thống mới. Sau đó tôi khởi động lại R / RStudio và mọi thứ đều hoạt động.


7

Đó là do một trong các phiên bản Java (32 bit / 64 bit) bị thiếu trong máy tính của bạn. Thử cài đặt cả Jdks và chạy mã.
Sau khi cài đặt Jdks, mở R và gõ mã

system("java -version")

Điều này sẽ cung cấp cho bạn phiên bản Jdk đã cài đặt. Sau đó, hãy thử tải gói rJava. Điều này đã làm việc cho tôi.


4

Tôi đã có một vấn đề tương tự. Nó được gây ra do gói phụ thuộc 'rJava'. Vấn đề này có thể được khắc phục bằng cách chuyển hướng R sang sử dụng khác JAVA_HOME.

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

Điều này đã làm việc cho tôi.


4

Nếu bạn gặp lỗi này trong RStudio, hãy sử dụng mã môi trường của Lauren ở trên và thay đổi phiên bản R của bạn thành phiên bản 32 bit trong Công cụ, Tùy chọn chung. Nên có cả tùy chọn 32bit và 64bit R nếu bạn có phiên bản mới hơn. Điều này sẽ yêu cầu khởi động lại R và giới hạn các tùy chọn bộ nhớ của bạn. Tuy nhiên, cài đặt phiên bản 64 bit của jre sẽ không bắt buộc.


2

Một gói thay thế mà bạn có thể sử dụng là readxl . Gói này không yêu cầu phụ thuộc bên ngoài.


2

Tôi nghĩ rằng tôi đã tìm thấy giải pháp vì tôi đã gặp vấn đề tương tự!

Bản sửa lỗi của tôi là cài đặt cả bản cập nhật JRE (Java Runtime Environment) phiên bản 8 32 bit và 64 bit. (Tôi yêu cầu 32 bit cho một ứng dụng khác, nhưng cách khắc phục của bạn có thể chỉ là cài đặt lại 64 bit của chính nó.)


1

Câu trả lời trong liên kết đã giải quyết vấn đề của tôi.

Trước khi giải quyết, tôi đã thử bằng cách thêm JAVA_HOME vào môi trường windows. Nó đã giải quyết được lỗi này nhưng lại tạo ra một vấn đề khác. Giải pháp trong liên kết trên giải quyết vấn đề này mà không tạo thêm vấn đề.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.