Có ai ngoài đó đã quản lý để có được rJava 0.9-3 để làm việc trên OS X 10.7.4 với Oracle Java 1.7 không?làm thế nào để có được rJava 0.9-3 để làm việc trên OS X 10.7.4 với Oracle Java 1.7?
R version 2.15.2 (2012-10-26) -- "Trick or Treat" Platform
x86_64-apple-darwin9.8.0/x86_64 (64-bit)
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
Tôi đã cài đặt rJava sử dụng cả hàm install.packages và cài đặt dòng lệnh với R 2.15.2. Tôi không nhận được bất kỳ lỗi nào.
$ R CMD INSTALL rJava
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *binary* package ‘rJava’ ...
* DONE (rJava)
$
Nếu tôi sử dụng Java Preferences để đưa 1,7 đầu tiên trong danh sách, nhưng để lại 1,6 "on", rJava luôn bắt đầu 1.6.
Nếu tôi sử dụng Java Preferences để đưa 1,7 đầu tiên và tắt 1.6, rJava thực hiện điều này:
> library(rJava)
> .jinit()
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
>
Tuy nhiên, bằng cách sử dụng chức năng hệ thống, R tự tìm thấy Java 1.7.
> system("java -version")
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
>
Có 1,7 cần mục nhập đặc biệt trong /System/Library/Java/JavaConfig.plist?
Thư mục Phiên bản có cần tinh chỉnh cho 1,7 không? Nó là lạ rằng hiện tại đi đến A, mà kết thúc với 1,7 trong khi CurrentJDK được ánh xạ tới 1,6
$cd /System/Library/Frameworks/JavaVM.framework/Versions/
$ls -la
total 64
drwxr-xr-x 11 root wheel 374 Sep 26 10:10 .
drwxr-xr-x 11 root wheel 374 Nov 26 09:24 ..
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.6.0 -> CurrentJDK
drwxr-xr-x 8 root wheel 272 Nov 26 09:24 A
lrwxr-xr-x 1 root wheel 1 Sep 26 10:09 Current -> A
lrwxr-xr-x 1 root wheel 59 Sep 26 10:09 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
Ngay cả với R CMD javareconf chạy với đường dẫn trỏ đến 1,7 file trực tiếp hoặc đến/usr/bin/java đường dẫn, rJava vẫn không thể tìm thấy hoặc bắt đầu Java 1.7.
1,7 có cần biến JAVA_LD_LIBRARY_PATH không?
Makeconf:JAVA = /usr/bin/java
Makeconf:JAVAC = /usr/bin/javac
Makeconf:JAVAH = /usr/bin/javah
Makeconf:JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre
Makeconf:JAVA_LD_LIBRARY_PATH =
Makeconf:JAVA_LIBS = -framework JavaVM
Makeconf:JAVA_CPPFLAGS = -I$(JAVA_HOME)/include
Makeconf:JAR = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/jar
Makeconf:JAVA = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/bin/java
Makeconf:JAVAC = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/javac
Makeconf:JAVAH = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/javah
Makeconf:JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre
Makeconf:JAVA_LD_LIBRARY_PATH =
Makeconf:JAVA_LIBS = -framework JavaVM
Makeconf:JAVA_CPPFLAGS = -I$(JAVA_HOME)/include
Nhờ sự giúp đỡ
Cập nhật 1:
Tôi hỏi này thuộc danh mục số liệu thống kê-rosuda-devel và nhận được câu trả lời sau đây từ Simon Urbanek. Tôi không nghĩ rằng Windows và Linux có cùng một vấn đề với cần biên dịch từ nguồn cho Java 1.7, kể từ khi chúng tôi đang chạy này trên Windows và Linux và không phải biên dịch rJava. Tôi sẽ báo cáo lại khi tôi có cơ hội để thử điều này:
--- bắt đầu quote ---
Bạn đang sử dụng nhị phân được biên dịch chống lại hệ thống Java (mà trên hệ thống của bạn là 1,6) - vì vậy nếu bạn loại bỏ Java 1.6 bạn sẽ phá vỡ nó. Nếu bạn muốn sử dụng Java 1.7, bạn sẽ phải cấu hình lại R cho Java 1.7 và biên dịch lại rJava để sử dụng các thiết lập đó. Lưu ý rằng Java của Java sống ở một nơi hoàn toàn khác (/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk) so với hệ thống Java (/System/Library/Frameworks/JavaVM.framework), vì vậy nó không thể thay thế được. Ngoài ra, Oracle Java 1.7 không phải là một khuôn khổ, nó là một mớ hỗn độn lớn mà không thực sự được thiết kế cho OS X, vì vậy bạn phải thiết lập nó bằng tay cho các thiết lập như trên Linux - nó khá đau đớn. Ngoài ra nó yêu cầu ghi đè ... vì vậy nếu bạn thực sự muốn đi xuống hố thỏ, đây là những gì làm việc cho tôi:
JAVA_LD_LIBRARY_PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Nội dung/Trang chủ/jre/lib/server JAVA_LIBS = '- L/Thư viện/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Nội dung/Trang chủ/jre/lib/server -ljvm' JAVA_CPPFLAGS = '- I/Thư viện/Java/JavaVirtualMachines/jdk1. 7,0_09.jdk/Nội dung/Trang chủ/bao gồm -I/Thư viện/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Nội dung/Trang chủ/bao gồm/darwin 'R64 CMD javareconf
Sau đó cài đặt rJava từ nguồn (R64 -> install.packages) ("rJava", gõ = 'nguồn')). Lưu ý rằng nó là 64-bit chỉ, vì vậy nó sẽ chỉ làm việc với 64-bit R.
---- cuối quote ---
Tôi không có bất kỳ thông tin chi tiết cụ thể nào ở đây, nhưng bạn có thể muốn cài đặt rJava từ nguồn hoặc thử danh sách gửi thư thống kê-rosuda-devel. –
Tôi đã yêu cầu trên danh sách và vừa nhận được câu trả lời. Tôi sẽ thêm nó vào câu hỏi gốc ở trên. – Tod
Cảm ơn bạn đã cập nhật điều đó với câu trả lời của Simon. Sẽ dễ đọc hơn nếu nó không ở định dạng mã với cuộn ngang. –