java - Linux Mint 中的 JAVA 问题
问题描述
我正在尝试安装 GetDFPData 包,但出现此错误:
checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver : '/usr/bin/jar'
compiler : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags : ''
java libs : ''
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.
If you don't have root privileges, run
R CMD javareconf -e
to set all Java-related variables and then install rJava.
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/rtheodoro/R/x86_64-pc-linux-gnu-library/3.6/rJava’
我检查了很多答案,但还没有解决。
我正在使用 Linux Mint 19.2 肉桂。
当我跑步时sudo R CMD javareconf
,我有:
*** JAVA_HOME is not a valid path, ignoring
Java interpreter : /usr/bin/java
Java version : 1.8.0_221
Java home path : /usr/lib/jvm/java-ibm-x86_64-80/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
trying to compile and link a JNI program
detected JNI cpp flags :
detected JNI linker flags : -L$(JAVA_HOME)/lib/amd64/compressedrefs -ljvm
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c conftest.c -o conftest.o
conftest.c:1:10: fatal error: jni.h: Arquivo ou diretório inexistente
#include <jni.h>
^~~~~~~
compilation terminated.
/usr/lib/R/etc/Makeconf:167: recipe for target 'conftest.o' failed
make: *** [conftest.o] Error 1
Unable to compile a JNI program
JAVA_HOME : /usr/lib/jvm/java-ibm-x86_64-80/jre
Java library path:
JNI cpp flags :
JNI linker flags :
Updating Java configuration in /usr/lib/R
Done.
$ javac -version
javac 1.8.0_222
在/usr/lib/jvm
,我有四个文件夹: ibm-java80-jre-x86_64 、 java-1.8.0-openjdk-amd64 、 java-8-openjdk-amd64 、 java-ibm-x86_64-80 。我不知道为什么。
有人能帮我吗?
解决方案
我解决了。我在 R CMD javareconf 中尝试了“请不要嘲笑我”的答案,但没有找到 jni.h
所以我做了:
(1) 更新所有存储库
sudo apt update -y
(2) 确保安装了 JRE 和 JDK 8sudo apt install -y openjdk-8-jdk openjdk-8-jre
(3) 然后,正如许多用户已经说过的那样,将 R 指向带有 JDK 8 的显式路径的 javasudo R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
推荐阅读
- reactjs - 是否可以更改 material-ui TextField 组件的排版样式以使用标题变体?
- r - 使用 rowSum 在 dplyr 中使用正则表达式进行条件突变
- python - Python:如何删除 .ipynb / Jupyter Notebook 的 .html 导出的“In []”和“Out []”?
- python - 将二维数组另存为 txt 文件
- pip - pip 19.3.1 TypeError:“模块”对象不可调用
- r - 在R中应用正则表达式保留逗号
- php - 无法将数据库中的字符串解码为 JSON
- python - kivy 说我有多个同名的屏幕
- javascript - 使用应用引擎服务部署时出现 502 bad gateway
- reactjs - 数据映射问题 - 无法读取未定义的属性“文档”