我有一个非常普遍的问题,那就是rJava无法在Ubuntu上正确安装。仅在几个地方here,here,here中讨论了这个问题。
基本问题是在安装rJava软件包时,会产生以下错误消息
configure: error: Unable to run a simple JNI program. Make sure you have configured R with Java support (see R documentation) and check config.log for failure reason. Warning in system(cmd) : error in running command ERROR: configuration failed for package ‘rJava’ * removing ‘/home/jonno/R/x86_64-pc-linux-gnu-library/3.6/rJava’
有许多与此问题密切相关的解决方案。他们中的大多数使用
sudo R CMD javareconf
为R配置Java(also a-e
variant)。-e
建议在环境变量(Some)中设置JAVA_HOME
路径。 others say not to建议卸载并重新安装R,而Others建议从cran安装rJava。有几个人推荐others。这些解决方案还有其他变体。
我已经尝试了以上所有方法的组合,但是却无济于事,所以显然做错了。
输入update alternatives
返回
echo $JAVA_HOME
我的等/环境看起来像这样
/usr/lib/jvm/java-11-openjdk-amd64
当我运行R CMD javaconf时,看起来像这样
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/$ MKL_THREADING_LAYER=GNU JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
我在做什么错,如何正确安装rJava?
我有一个非常普遍的问题,那就是rJava无法在Ubuntu上正确安装。在这里,这里,这里,仅举几个例子,已经讨论了这个问题。基本的问题是在...
我调查了原始海报(我们在同一地方工作),问题在于,在OpenJDK11中,它们在JVM所驻留的某些Java interpreter : /usr/lib/jvm/java-11-openjdk-amd64/java
Java version : 11.0.4
Java home path : /usr/lib/jvm/java-11-openjdk-amd64
Java compiler : /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/lib/jvm/java-11-openjdk-amd64/bin/jar
trying to compile and link a JNI program
detected JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-11-openjdk-amd64/lib/server -ljvm -L/usr/lib/R/lib -lR
JAVA_HOME : /usr/lib/jvm/java-11-openjdk-amd64
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /usr/lib/R
Done.
文件中移动,尤其是在Ubuntu软件包中的.so
文件中。现在位于libjvm.so
。