如何为 R 设置 `Java headers gen.:`(安装 `rJava`)

How to set `Java headers gen.:` for R (to install `rJava`)

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

我收到错误:

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。但是我如何 "tell" 这个到 R?

感谢@IvoVidovic 的评论,我去了 /usr/bin 并检查了 javah。结果证明它是指向不存在文件的符号链接。事实上,Arch Linux OpenJDK 10 中缺少 javah(该文件未在 package contents 中列出)。

  • 正在安装 OpenJDK 9
  • 正在用 export JAVA_HOME=/usr/lib/jvm/java-9-openjdk
  • 更新我的 JAVA_HOME
  • 将 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,他用他的评论向我指出了正确的方向。