【问题标题】:Problems with JAVA in Linux MintLinux Mint 中的 JAVA 问题
【发布时间】:2019-12-05 02:21:27
【问题描述】:

我正在尝试安装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。我不知道为什么。

有人可以帮我吗?

【问题讨论】:

  • 不清楚您是否安装了 JDK(这是 R 依赖项)。打开控制台并尝试javac -version 并让我们知道响应。注意:我不是要java -version——我想查看编译器版本。
  • 是的,我有:javac 1.8.0_222

标签: java r linux


【解决方案1】:

我解决了。我在R CMD javareconf not finding jni.h尝试了“请不要嘲笑我”的答案

所以我做到了:

(1) 更新所有存储库sudo apt update -y (2) 确定 JRE 和 JDK 8 安装sudo apt install -y openjdk-8-jdk openjdk-8-jre (3) 然后,正如很多用户已经说过的,指向 R 到带有 JDK 8 的显式路径的 java sudo R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

【讨论】:

  • 是的。您注意到 javareconf 报告的版本与您的 javac -version 报告的版本不匹配?您的 Java 安装发生了一些奇怪的事情,不知何故,头文件没有写入您的 include 目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2014-03-03
相关资源
最近更新 更多