我最终尝试在运行R 3.3.3,Java 12和Mojave OS的Mac上安装RJDBC软件包。
当尝试安装RDJBC时,出现以下错误:
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.
因此,我继续在终端中运行R CMD javareconf并得到以下错误:
conftest.c:1:10: fatal error: 'jni.h' file not found
我在同一主题的网上发现了各种问题,并尝试了建议的解决方案,但没有一个对我有用。它可能是我的OS / Java版本的组合。有人愿意在这里指导我解决问题吗?
答案 0 :(得分:0)
这将需要一些调整。通常,当R,Java和rJava应该一起工作时,它们并不是一件容易的事。确保通过以下步骤:http://www.owsiak.org/r-java-11-and-making-sure-you-can-load-rjava/
请注意,由于Java 12中的更改,不再可能通过反射来动态影响共享库的位置-这会影响rJava
。我很确定您不会获得rJava
和任何其他基于JNI
的代码,它们都可以在R中与Java 12一起正常工作。
配置好R后,它将按预期工作
> R
R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin15.6.0 (64-bit)
...
...
> install.packages("RJDBC")
--- Please select a CRAN mirror for use in this session ---
...
> library(RJDBC)
Loading required package: DBI
>
更新
对于Java 12
,请尝试以下操作。在~/.profile
内添加以下行
export JAVA_HOME=$(/usr/libexec/java_home -v 12)
然后运行
> sudo R CMD javareconf \
JAVA_HOME=${JAVA_HOME} \
JAVA=${JAVA_HOME}/bin/java \
JAVAC=${JAVA_HOME}/bin/javac \
JAVAH=${JAVA_HOME}/bin/javah \
JAR=${JAVA_HOME}/bin/jar
并且在R
> system("java -version")
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
> library(RJDBC)
Loading required package: DBI
Loading required package: rJava
>
当然,您仍然需要XCode.app
,因为它包含JNI
的标题。
更新
为了确保所有应用都获得Java 11
而不是Java 12
(不仅基于CLI),您可以按照以下方式“禁用” Java 12
。
cd /Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents
sudo mv Info.plist Info.plist~
从现在开始,即使您尚未删除Java 12
,RStudio
也会选择正确的版本。