• R语言
  • 有人安装成功过rJava没?

Arch Linux x64

为了安装rJava, 从AUR装上了100多M的Oracle JDK, 也sudo R CMD javareconf过了, 甚至也R CMD javareconf -e过了, 安装时一直卡在Cannot compile a simple JNI program这里:

checking Java support in R... present:

interpreter : '/opt/java/jre/bin/java'

archiver : '/opt/java/bin/jar'

compiler : '/opt/java/bin/javac'

header prep.: '/opt/java/bin/javah'

cpp flags : '-I/opt/java/include -I/opt/java/include/linux'

java libs : '-L/usr/local/lib64 -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm'

checking whether JNI programs can be compiled... configure: error: Cannot compile a simple JNI program. See config.log for details.

Make sure you have Java Development Kit installed and correctly registered in R.

If in doubt, re-run "R CMD javareconf" as root.

全盘搜了一下, 没找到这个传说中的config.log ...

后来重新./configure一下R, 也是在编译JNI这里no了一下:

...

checking whether JNI programs can be compiled ... no

...

sudo R CMD javareconf结果:

Java interpreter : /opt/java/bin/java

Java version : 1.7.0

Java home path : /opt/java/jre

Java compiler : /opt/java/bin/javac

Java headers gen.: /opt/java/bin/javah

Java archive tool: /opt/java/bin/jar

Java library path: :/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

JNI linker flags : -L -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm

JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux

Updating Java configuration in /usr/local/lib64/R

Done.

对java实在是不了解, 莫非是什么环境变量默认没有定义正确或是需要手工定义? 因为其他一些程序, 暂时也不能切换到openjre/jdk.

8 天 后

灰头土脸的Ubuntu用户飘过,表示不解……

回复 第1楼 的 nan.xiao:

Windows用户表示安装rJava木有鸭梨,Linux下还没试过。

回复 第2楼 的 谢益辉:将来哪天突然下定决心不继续灰头土脸时就换Arch吧 哈哈 。。。

回复 第3楼 的 dclong:Windows用户退散 。。。[s:14]

3 个月 后

真相大白了 Oracle的jre和jdk社区不给维护 原来版本的个人打包者没给打好

今天更新以后解决 终于能用上RWeka了:

$ R CMD javareconf

Java interpreter : /opt/java/jre/bin/java

Java version : 1.7.0_02

Java home path : /opt/java

Java compiler : /opt/java/bin/javac

Java headers gen.: /opt/java/bin/javah

Java archive tool: /opt/java/bin/jar

NOTE: Your JVM has a bogus java.library.path system property!

Trying a heuristic via sun.boot.library.path to find jvm library...

Java library path: $(JAVA_HOME)/jre/lib/amd64:$(JAVA_HOME)/jre/lib/amd64/server

JNI linker flags : -L$(JAVA_HOME)/jre/lib/amd64 -L$(JAVA_HOME)/jre/lib/amd64/server -ljvm

JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux

Updating Java configuration in /usr/local/lib/R

Done.

4 个月 后

sudo R CMD javareconf 后如果没有设置JAVAH和JAR就会编译不到,可以手工指定一下

sudo R CMD javareconf JAVAH=/usr/lib/jvm/java/jdk1.6.0_25/bin/javah JAR=/usr/lib/jvm/java/jdk1.6.0_25/bin/jar

8 个月 后

今天安装也遇到同样的问题,花了一两个小时问题解决,在此留着备后面遇到同样问题的使用,操作系统opensuse12.4 先安装java-1_7_0-openjdk-devel后在 sudo R CMD javareconf 就可以安装rJava包!

1 年 后

之前也在centos(64位)上安装R、rJava,费了很大劲。共享一下心得:

1.编译安装R

(1)解压R软件安装包(例如:tar zxvf R-2.15.3.tar.gz)

(2)进入解压后的R目录,进行编译:./configure --enable-R-shlib【注:(1)--enable-R-shlib这个参数一定不能少。(2)如果无法编译,先安装gcc,用命令:yum install gcc-gfortran gcc gcc-c++ readline-devel libXt-devel】

(4)make

(5)make install

2、(在“/etc/profile”文件中)配置R,创建链接

export R_HOME= /usr/R-2.15.3

ln -s /usr/R-2.15.3/bin/R /usr/bin/R(注:ln这是linux中一个命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件。)

3.(安装jdk)并配置java

安装sun公司的jdk(注:怎么装就不在罗嗦了。下述是以jdk1.7为例),其中需要在(“/etc/profile”文件中)”配置环境变量:

#jdk

export JAVA_HOME=/usr/jdk1.7.0_45

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib

#jre

export JRE_HOME=/usr/jdk1.7.0_45/jre

export PATH=$PATH:$JRE_HOME/bin

export CLASSPATH=.:$JRE_HOME/lib

4.R CMD javareconf JAVAH=/usr/jdk1.7.0_45/bin/javah JAR=/usr/jdk1.7.0_45/bin/jar(参见http://wiki.cvrgrid.org/index.php/RJava/jri_Setup)

5.进入R(直接在Linux提示符"#"下,输入字母“R”)

6.install.packages('rJava',,'http://www.rforge.net/')

如果想用java调用R,还要再次设置系统环境变量,前面不能设,根本就还没有产生rJava的东西,需要现在设置。

7.chmod 777 -R /usr/R-2.15.3/lib/R/library/rJava

8.在(“/etc/profile”文件中)”配置环境变量:

CLASSPATH=.:/usr/local/lib64/R/library/rJava/jri

LD_LIBRARY_PATH=/usr/local/lib64/R/library/rJava/jri

----------------------------------------------------------

9.cp /usr/R-2.15.3/lib/R/library/rJava/jri/libjri.so /usr/lib(注:如果是64位的系统,需要将libjri.so等*.so文件拷贝到系统的/lib64目录下)

10、解压tomcat 并拷贝到/usr/local/下,修改tomcat下的 /conf/server.xml 在末尾添加上如下语句

<Context docBase="rTest" path="/rTest" reloadable="true" source="org.eclipse.jst.j2ee.server:rTest"/>

<Context path="/rTestPic" docBase="/usr/local/uploadImage" debug="0"/>

11、在/usr/local/下创建uploadImage 文件夹 ,并赋予权限

12、将war包放入 webapps下,创建tomcat用户并修改 tomcat文件夹所属用户和权限:

chown -Rh tomcat.tomcat /usr/local/tomcat

注:9-12步骤根据项目开发情况,视情况设置。

2 年 后
[未知用户]

RStudio AWS 和 rJava 这玩意儿,折腾了俺整整两周了... :plain: