gpt4 book ai didi

rJAVA 错误的 Java 版本

转载 作者:行者123 更新时间:2023-12-01 12:26:42 26 4
gpt4 key购买 nike

这个问题困扰了我一个星期了。我已经从运行在 Ubuntu 服务器 14.04 上的 R 安装了 rJAVA。我像这样将 rJava 包安装为源代码:

install.packages("rJava", type="source")

我得到:

DONE(rJava)

我已经安装了 java-8-openjdk 并且在运行 java -version 时我得到了正确的版本,这是输出:

openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

然而,当我使用

检查 R 中的 java 版本时
sudo R CMD javareconf 

library(rJava)
jinit()
.jcall("java/lang/System", "S", "getProperty", "java.runtime.version")

java版本仍然设置为1.7:

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

trying to compile and link a JNI program
detected JNI cpp flags : -I$(JAVA_HOME)/include
detected JNI linker flags : -L/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server -ljvm
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/lib/jvm/default-java/include -fpic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -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-7-openjdk-amd64/jre/lib/amd64/server -ljvm -L/usr/lib/R/lib -lR


JAVA_HOME : /usr/lib/jvm/default-java
Java library path: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server
JNI cpp flags : -I$(JAVA_HOME)/include
JNI linker flags : -L/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server -ljvm
Updating Java configuration in /usr/lib/R
Done.

请让我知道我遗漏了什么。

最佳答案

我遇到了同样的问题:java -version 给出了 Java 8,但是 sudo R CMD javareconf 给出了 Java 7。

运行 sudo R CMD javareconf --help 给出:

Environment variables that can be used to influence the detection:
JAVA path to a Java interpreter executable
By default first 'java' command found on the PATH
is taken (unless JAVA_HOME is also specified).
JAVA_HOME home of the Java environment. If not specified,
it will be detected automatically from the Java
interpreter.

文档告诉我们按照德克的建议去做:确保在 PATH 上找到的第一个 java 是我们想要的。这对我的情况没有帮助,即使未设置 JAVA_HOME。 Abdou 关于在我的 .Rprofile 中设置 JAVA_HOME 的建议也没有帮助。

为了解决这个问题,我必须将 root 的 JAVA_HOME 设置为我想要的(因为 R CMD javareconf 以 sudo 运行) :

sudo -i
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
R CMD javareconf
exit

关于rJAVA 错误的 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com