2013-05-08 27 views
53

Tôi không thể gọi gói rJava trong số R 3.0. Tôi nhận được thông báo sauKhông thể cài đặt rJava trong R 3.0 trong Ubuntu 13.04

Error: package ‘rJava’ was built before R 3.0.0: please re-install it 

Tôi nhận được thông báo lỗi khi tôi đã cố gắng để cài đặt lại rJava gói. Tôi đã cung cấp đầu ra của R CMD javareconf

Java interpreter : /usr/bin/java 
Java version  : 1.7.0_21 
Java home path : /usr/lib/jvm/java-7-openjdk-i386/jre 
Java compiler : /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javac 
Java headers gen.: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javah 
Java archive tool: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/jar 

trying to compile and link a JNI progam 
detected JNI cpp flags : 
detected JNI linker flags : 
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG  -fpic -O2 -pipe -g -c conftest.c -o conftest.o 
conftest.c:1:17: fatal error: jni.h: No such file or directory 
compilation terminated. 
make: *** [conftest.o] Error 1 
Unable to compile a JNI program 


Java library path: 
JNI cpp flags : 
JNI linker flags : 
Updating Java configuration in /usr/lib/R 
Done. 

Tôi đang sử dụng Ubuntu 13.04. Tôi cũng đã thử apt-get install r-cran-rjava không giúp giải quyết vấn đề. Về jni.h có một số giải pháp here. Nhưng, không chắc làm thế nào tôi có thể sử dụng giải pháp ở đây.

Trả lời

75

Tôi đã gặp sự cố tương tự. Giải pháp của tôi là để cài đặt các openjdk-7- * qua

sudo apt-get install openjdk-7-* 

Tiếp theo đó với

sudo R CMD javareconf 

và tôi lúc đó có thể cài đặt rJava trong R qua install.packages("rJava").

Trong khi có lẽ không phải là giải pháp thanh lịch nhất, nó dường như đã giải quyết được vấn đề của tôi với việc rJava hoạt động.

+2

Cảm ơn bạn. Nó đã làm việc. Tôi đã thử cài đặt java ngày hôm qua. Tôi cũng đã thử Oracle Java, nhưng không hoạt động. Không chắc chắn tôi đã cài đặt JRE hoặc khởi động lại đã làm các trick. – vinux

+9

không may mắn cho tôi: hai bước đầu tiên chạy mà không có lỗi, sau đó trên 'install.packages' tôi nhận được:' lỗi: không thể tải đối tượng được chia sẻ '/home/cboettig/R/x86_64-pc-linux-gnu-library/3.0 /rJava/libs/rJava.so ': '' libjvm.so: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục nào'. Bất kỳ ý tưởng? – cboettig

+7

Tôi đã gặp phải sự cố tương tự - không hoạt động. Cuối cùng thấy rằng sau khi cài đặt Java 1.7, tôi đã phải nói với Ubuntu để sử dụng nó như là mặc định - xem [ở đây] (http://askubuntu.com/questions/64329/how-to-replace-openjdk-6-with-openjdk- 7) - sử dụng 'update-java-alternatives -l' để lấy danh sách các phiên bản java được cài đặt và' sudo update-java-alternative-java-1.7.0-openjdk-i386' thành mặc định là 1.7. Sau đó, 'sudo R CMD javareconf' chạy mà không có lỗi và tôi đã có thể' install.packages ("rJava") ' – JohnSG

27

Đối với những người nhận được lỗi:

error: unable to load shared object '/some/dir/rJava/libs/rJava.so': libjvm.so: 
cannot open shared object file: No such file or directory 

tôi đã giải quyết được lỗi định vị thư viện trong hệ thống và liên kết chúng với /usr/lib:

$sudo updatedb 
$locate libjvm.so 
/usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so 
/usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so 
$sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib/ 
1

Cài đặt rJava từ gói phân phối như đề xuất trong this askUbuntu answer cũng hoạt động:

sudo apt-get install r-cran-rjava 

N OTE: đã thử từ hệ thống Debian.

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