首页 > 解决方案 > 如何为 R 设置`Java headers gen.:`(安装`rJava`)

问题描述

我正在尝试rJava在 Arch Linux 上的 R 中安装该软件包。

我得到了错误:

configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf as root to add Java support to R.

运行sudo R CMD javareconf,我可以看到Java headers gen.:没有设置,但我没有弄清楚如何设置它。

这是 R 看到的完整 java 配置(除此之外Java haders gen.,其余部分对我来说还可以):

Java interpreter : /usr/bin/java
Java version     : 10
Java home path   : /usr/lib/jvm/java-10-openjdk
Java compiler    : /usr/bin/javac
Java headers gen.: 
Java archive tool: /usr/bin/jar

我确实javah/usr/bin。但是我如何“告诉”这个给 R 呢?

标签: javararchlinuxrjava

解决方案


感谢@IvoVidovic 的评论,我去/usr/bin检查了javah。原来它是一个不存在的文件的符号链接。实际上,javahArch Linux OpenJDK 10 中缺少该文件(该文件未在包内容中列出)。

  • 安装OpenJDK 9
  • 更新我JAVA_HOMEexport JAVA_HOME=/usr/lib/jvm/java-9-openjdk
  • 将 OpenJDK 9 设置为我的默认 jdk sudo archlinux-java set java-9-openjdk
  • 并重新运行sudo R CMD javareconf允许 R 找到所有 java 文件,包括javah.

我现在有:

Java interpreter : /usr/bin/java
Java version     : 9.0.4
Java home path   : /usr/lib/jvm/java-9-openjdk
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar

我可以rJava毫无问题地安装。

再次感谢@IvoVidovic,他的评论让我朝着正确的方向前进。


推荐阅读