java - 如何为 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 呢?
解决方案
感谢@IvoVidovic 的评论,我去/usr/bin
检查了javah
。原来它是一个不存在的文件的符号链接。实际上,javah
Arch Linux OpenJDK 10 中缺少该文件(该文件未在包内容中列出)。
- 安装
OpenJDK 9
, - 更新我
JAVA_HOME
的export 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,他的评论让我朝着正确的方向前进。
推荐阅读
- python - 如何为此数据框创建散点图?
- fonts - 如何减小 PyCharm 中的面板字体大小?
- node.js - MongoDB 聚合返回重复的结果
- c++ - 在 C++ 中使用按引用调用函数查找阶乘
- javascript - 如何从javascript传递mongodb中的内部查询
- python - “手动”分配训练和测试数据
- python - Python:fib 函数中的 for 循环对我来说没有意义
- r - R中的滞后函数可以在不循环的情况下重复使用R中的计算值吗?
- mongodb - 如何在聚合中为项目中的每个文档添加唯一字段?
- python - Nginx + UWSGI + Flask 504 网关超时错误