java 各版本jni支持,安装rJava-“配置:错误:一种或多种JNI类型不同于相应的本机类型"...

I have came across this problem while installing rJava on R3.0.1:

"configure: error: One or more JNI types differ from the corresponding native type"

The detailed message is attached below.

I searched for similar problems but my issue is a little trickier and many proposed solutions either didnt work or I could not try, because I am working on a server which I do not have write access to system libraries.

OS: Linux 2.6.18-348.6.1.el5 #1 SMP Tue May 21 15:44:27 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux (info given by typing "uname -a" sorry I couldn't quite understand this info)

R: R3.0.1, I downloaded the source, put in my home directory, and built R from source.

rJava: I ran 'install.packages("rJava")', during installation I got:

=========================

checking Java support in R... present:

interpreter : '/usr/bin/java'

archiver : '/usr/bin/jar'

compiler : '/usr/bin/javac'

header prep.: '/usr/bin/javah'

cpp flags : '-I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre/../include -

I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre/../include/linux'

java libs : '-L/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre/lib/amd64/se

rver -ljvm'

checking whether JNI programs can be compiled... yes

checking JNI data types... configure: error: One or more JNI types differ from the

corresponding native type. You may need to use non-standard compiler flags or

a different compiler in order to fix this.

ERROR: configuration failed for package 'rJava'

* removing '/home/me/R-3.0.1/library/rJava'

==================================

Since I can only access the server remotely, I do not have write access to anything outside my home directory /home/me.

Any information would be highly appreciated!

解决方案

I ran into the same problem trying to install.packages("rJava") in R version 3.0.2, as long as I tried to install as ordinary user (Linux, Debian). There was no problem running install.packages("rJava") as root. Then, trying library(rJava) worked for root but not for me as a user:

Error : .onLoad failed in loadNamespace() for 'rJava', details:

call: dyn.load(file, DLLpath = DLLpath, ...)

error: unable to load shared object '/usr/usr.local.original.Debian/lib/R/site-library/rJava/libs/rJava.so':

libjvm.so: cannot open shared object file: No such file or directory

This problem required to add the environment variables JAVA_HOME and LD_LIBRARY_PATH

to ~/.login (following instructions found at Trouble in Setting Java Environment Path on Ubuntu (libjvm.so: cannot open shared object file: No such file or directory)):

setenv JAVA_HOME /usr/lib/jvm/java-7-oracle/

setenv LD_LIBRARY_PATH $JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server

# For c-shell; for bash, it would have to be:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle/

export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server

So, you would have to have a system administrator install rJava for you, then set your environment variables and, of course, set your own .libPaths() in R such as to find rJava.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值