Rstudio 在 Linux 上启动新会话时使用的默认 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

您也可以使用 vim 等文本编辑器来编辑

.Renviron

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