2013-07-10 47 views
8

Tôi muốn cài đặt rJava nhưng nó không hoạt động. Khi tôi gõ CMD R javareconf trong giao diện điều khiển tôi nhận được lỗi sau:không thể biên dịch chương trình JNI rJava

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 -O3 -pipe -g 
-c conftest.c -o conftest.o 
conftest.c:1:17: error: jni.h: No such file or directory 
conftest.c: In function 'main': 
conftest.c:4: warning: implicit declaration of function 'JNI_CreateJavaVM' 
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/lib64/R 
Done. 

Bất kỳ ý tưởng làm thế nào để sửa chữa nó?

+0

conftest.c: 1: 17: lỗi: jni.h: Không có tệp hoặc thư mục như vậy ... vui lòng xem điều này –

Trả lời

4

Tệp jni.h là một phần của quá trình cài đặt JDK. Có thể bạn chưa cài Java JDK đúng cách. Tải xuống Oracle Java từ here hoặc sử dụng trình quản lý gói của bạn.

Nếu bạn đã cài Java JDK, hãy đặt biến môi trường JAVA_HOME để trỏ đến thư mục JDK.

+0

Tôi đang làm việc trên máy chủ trên ssh với debian 6. Trên thực tế JDK ist được cài đặt chính xác. Tôi đã làm một sudo apt-get cài đặt openjdk-6-jdk. Unfortunetaly sudo apt-get cài đặt ioenjdk-7-jdk không hoạt động trên debian 6 – user2523848

+2

Debian không có gói rJava mà bạn có thể sử dụng không? Hãy thử 'apt-get install r-cran-rjava'. –

+0

Có, Nó có nhưng nó là tiếc là phiên bản cũ, mà không làm việc với RHive: gói 'rJava' 0.8-4 đã được tìm thấy, nhưng> = 0.9.0 là cần thiết cho 'RHive' – user2523848

1

Tôi biết điều này đã bị đóng nhưng tôi đang thêm giải pháp của mình để hoàn thành. Trong thực tế tôi đã có cùng một vấn đề và tất cả đã được cài đặt đúng. Tôi cũng đã chạy các thiết bị

sudo R CMD javareconf 

để thiết lập toàn bộ hệ thống. Những gì tôi cần là để nó hoạt động cho người dùng của tôi. Và trong trường hợp này, bạn nên chạy

R CMD javareconf -e 

không có sudo và kèm theo -e.

Làm việc cho tôi. :)

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