2016-01-24 18 views
14

Tôi đã cài đặt bằng cách gọi rJava install.packages ("rJava") - không có vấn đề thấyLàm thế nào để một cấu hình rJava trên OSX để chọn JVM đúng - .jinit() không

Tuy nhiên khi tôi gọi:

library(rJava) 
.jinit() 

tôi nhận được:

JavaVM: requested Java version ((null)) not available. Using Java at "" instead. 
JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib 
JavaVM FATAL: Failed to load the jvm library. 
Error in .jinit() : JNI_GetCreatedJavaVMs returned -1 

tôi đang chạy OSX:

Darwin MBP-2 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64 

Tôi có sau Sun JDK được cài đặt:

$ ls /Library/Java/JavaVirtualMachines/ 
jdk1.7.0_79.jdk jdk1.8.0_65.jdk 

Những Java là trên PATH của tôi:

$ which java 
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home//bin/Java 

Tôi cũng đã JavaHome định nghĩa là:

$ echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/ 
+2

Làm thế nào mà bạn cấu hình R? Lưu ý rằng rJava sẽ sử dụng bất kỳ Java bạn đã cấu hình trong R - xem 'R CMD javareconf' và tài liệu R. Cũng tránh đặt 'JAVA_HOME' bằng tay - bạn chỉ có thể phá vỡ mọi thứ bằng cách đặt sai. Cuối cùng, hãy chắc chắn rằng bạn sử dụng rJava 0.9-8 hoặc cao hơn kể từ khi bạn đang ở trên OS X và có một số lỗi trong Oracle Java có cần xung quanh công việc. –

+0

Hãy để tôi thử điều đó - cảm ơn. – user1172468

+1

@ user1172468 đã làm nó cuối cùng làm việc cho bạn? Tôi vẫn gặp vấn đề – Dinesh

Trả lời

1

Trong khi cố gắng chạy thử nghiệm này trên OSX 10.11.5 (El Capitan) http://www.r-bloggers.com/connecting-r-to-an-oracle-database-with-rjdbc/

tôi giữ lấy mà lỗi tương tự. Tôi đã cố gắng thực hiện cài đặt như được đề xuất bởi Tim Child. Điều tôi nhận thấy là phiên bản R Studio của tôi (Phiên bản 0.99.896) tiếp tục phàn nàn về việc cài đặt 1.6 Legacy Java cho OSX.

Tôi đã cài đặt những di sản Java từ trang web https://support.apple.com/kb/DL1572?locale=en_US

Sau đó chạy một thử nghiệm đơn giản trong R Studio.

library(rJava) 

.jinit() 
print(.jcall("java/lang/System", "S", "getProperty", "java.version")) 

kết quả của tôi:

> library(rJava) 
> .jinit() 
> print(.jcall("java/lang/System", "S", "getProperty", "java.version")) 
[1] "1.6.0_65" 

Chúc mừng khi thấy tôi chạy thử nghiệm khác của tôi (lúc đó rằng một mà bắt đầu tôi xuống con đường này). Tôi vẫn không thể thiết lập phiên bản Java mới nhất.

tôi đã thêm một cài đặt lại của gói rJava

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

và những thứ đang làm việc ok, sử dụng phiên bản Java 1.6 cho bây giờ, nhưng ít nhất tôi có thể nhận được một số công việc thực hiện. Hy vọng một số đi qua một sửa chữa tốt hơn :)

0

Tôi gặp khó khăn với vấn đề này trong một vài giờ. Có một chủ đề thực sự tốt với một số nền tảng về rJava đây: https://groups.google.com/forum/#!topic/r-sig-mac/eFSDrjphgGs

Các bước sau đây đã kết thúc làm việc cho tôi:
(1) Nâng cấp lên JDK mới nhất

(2) Thiết lập các biến môi trường sau đây trong của tôi ~ /.bash_profile:
xuất khẩu JAVA_HOME = $ (/ usr/libexec/JAVA_HOME)
xuất khẩu JAVA_CPPFLAGS = $ (/ usr/libexec/JAVA_HOME)/bao gồm

(3) Cài đặt lại rJava từ nguồn như root:
sudo R CMD iNSTALL rJava_0.9-8.tar.gz

(4) Tái cấu hình Java như root:
sudo R CMD javareconf

Sau đó, tôi đúng có thể cài đặt các thư viện khác mà phụ thuộc vào cấu hình đúng của rJava .

9

Câu trả lời tại https://stackoverflow.com/a/36045290/4351357 đã giúp giải quyết sự cố này cho tôi trên MacOS Sierra Phiên bản 10.12. Đặc biệt, nó cung cấp mã trong câu lệnh 1, bên dưới.

Ba lệnh ga tôi đã sử dụng là:

  1. sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
  2. sudo R CMD javareconf
  3. install.packages("rJava",type='source')
+0

Làm việc cho tôi trong MacOS Sierra 10.12.1. Tks +1 – Murta

+0

Điều này dường như đã làm việc cho tôi quá, OS Sierra Phiên bản 10.12.3. Bước thực sự là gì? – DaveRGP

+0

Nó dường như hoạt động, trong đó máy Java được nạp, nhưng kể từ đó đã có các vấn đề khác – DaveRGP

Các vấn đề liên quan