R 当我们在 Linux 中启动新的 rstudio 会话时,Rstudio 使用的默认 JAVA 路径是什么?

问题描述 投票:0回答:1

我的linux服务器上安装了几个java版本,在

/usr/local/java/jdk1.8.0_131  (this is the correct version)
/usr/local/java/jdk1.7.0_79
/usr/local/java/jdk1.8.0_171

我正在使用

sparklyr
包连接到 Spark 集群,但是当我启动 rstudio 并使用 Sparklyr 进行连接时,它失败并告诉我 java 版本不正确。命令
Sys.getenv("JAVA_HOME")
返回我 '' ;我使用
Sys.setenv(JAVA_HOME = '/usr/local/java/jdk1.8.0_131')
后,一切正常。

但奇怪的是我已经在我的

JAVA_HOME = /usr/local/java/jdk1.8.0_131
中设置了
/etc/profile
(否则即使我尝试在bash中启动spark我也会失败)

那么这里的问题是,当我们在linux中启动rstudio时,默认情况下它会定位到哪里作为其默认的java执行位置?我们如何更改它(我不想每次开始新的 r 会话时都更改它)

仅供参考: 1 当我使用

alternatives --display java
时,它给了我jdk1.7.0_79版本,这是错误的版本,我认为可能是rstudio中的R会话也在使用这个版本。但这只是猜测,并未得到证实。

2 当我直接在 bash 中启动 R 会话时,

Sys.getenv('JAVA_HOME')
给了我正确的路径。所以只有在rstudio中,设置不正确/或者没有设置..

java r linux rstudio
1个回答
0
投票

它是一个系统环境变量。

~$ echo $JAVA_HOME
/usr/local/jdk-21

如果 RStudio 上由于某种原因为空(我的情况也是如此),请在 JAVA_HOME 后面附加一行,然后重新启动 RStudio。

~$ echo "JAVA_HOME=/usr/local/jdk-21" >> ~/.Renviron

您也可以使用文本编辑器编辑

.Renviron

© www.soinside.com 2019 - 2024. All rights reserved.