当前位置: 首页 > 知识库问答 >
问题:

rJava、mac 10.12.6和Javav 9(R版本3.4.1)的问题

景明诚
2023-03-14

我在安装和加载rJava时仍然遇到问题。我有R 3.4.1(“单根蜡烛”);Java v 9和mac OS 10.12.6。

我遵循了这里列出的所有步骤,其中包括使用终端编辑我的~/。配置文件以包括:

导出JAVA_HOME=$(/usr/libexec/java_home-v 9)

导出路径=$JAVA\U HOME/bin:$PATH

并进行其他更改以将R连接到“正确”的Java。当我运行时

sudo R CMD javareconf

但是,我收到一条错误消息,上面写着:

警告:“JNI\u CreateJavaVM”已弃用[-Wdeprecated声明]JNI\u CreateJavaVM(0,0,0);^/系统/库/框架/JavaVM。框架/标题/jni。h: 1937:1:注意:“JNI\u CreateJavaVM”已在此处明确标记为已弃用JNI\u CreateJavaVM(JavaVM**pvm,void**penv,void*args);^生成1条警告。

当我跑的时候

R CMD安装rJava\u 0.9-8。焦油广州

一切都很顺利,直到我发现一个错误,上面写着:

正在检查是否可以编译JNI程序…配置:错误:无法编译简单的JNI程序。请参阅配置。记录详细信息。

确保已安装Java开发工具包并在R中正确注册。如果有疑问,请以root身份重新运行“R CMD javareconf”。

错误:包“rJava”的配置失败

来自上面链接的网站的Michal建议确保'/usr/libexec/java_home-v 9'“指向”JDK而不是JRE。我不确定如何做到这一点。当我尝试类似的东西时:

Echo$JAVA_HOME

我得到:

/Library/Java /JavaVirtualMachines/jdk-9.jdk/Contents/Home

我怎么知道这个是JDK还是JRE?

由于我的错误消息,我认为我有一个JNI问题,但我不知道如何开始处理这个问题。如果您对使用Michal教程可能出现的问题有任何见解,我们将不胜感激!

另外,我最初的问题是在R中,试图加载库(rJava),但出现以下错误:

错误:“rJava”的包或命名空间加载失败:。“rJava”的loadNamespace()中的onLoad失败,详细信息:调用:dyn。加载(文件,DLLpath=DLLpath,…)错误:无法加载共享对象“/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/rJava/libs/rJava。so“:dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/rJava/libs/rJava.so,6):未加载库:@rpath/libjvm。dylib引用自:/Library/Frameworks/R.framework/Versions/3.4/Resources/Library/rJava/libs/rJava。so原因:未找到图像

共有2个答案

段干安和
2023-03-14

您可以执行以下操作来测试Java 9是否是JDK。执行以下操作:

> git clone https://github.com/mkowsiak/jnicookbook.git
> cd jnicookbook/recipes/recipeNo001
> export JAVA_HOME=$(/usr/libexec/java_home -v 9)
> export PATH=$JAVA_HOME/bin:$PATH
> make
> make test

如果你看到

Hello world!

最后,这意味着您的JDK可以编译JNI代码。现在,如果它能工作,就意味着rJava仍在使用不正确的Java安装(例如,苹果的安装)。在这种情况下,您需要查看rJava的错误日志,以确保其中使用了什么。

我希望这对你至少有一点帮助。

季阳朔
2023-03-14

我关注了这个链接,特别是:

管理员帐户用户

在终端发出以下命令:

export JAVA_HOME=${JAVA_HOME:-$(/usr/libexec/java_home)} 
export LIBJVM=$(find "${JAVA_HOME}" -name 'libjvm.dylib')
R CMD javareconf JAVA_LIBS="${LIBJVM}" JAVA_LD_LIBRARY_PATH="${LIBJVM}" JAVA_CPPFLAGS="'-I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin -I$(dirname "${LIBJVM}")'"
ln -fs "$LIBJVM" /Library/Frameworks/R.framework/Libraries

安装成功!

 类似资料:
  • 问题内容: 我在macOS sierra(10.12.5)上运行R(版本3.4.0),并且尝试使用xlsx库,该库要求使用rJava库。 当我尝试在R控制台中使用rJava加载时(无论是在RStudio中还是在终端中),都会收到以下错误消息,使我难以理解: 在这个问题上进行了搜索,我发现了许多类似的帖子(但每次都有一些不同的问题),其中最有前途的就是这个SO问题。 由于建议的步骤需要适应我的情况,

  • 所以,这基本上是我在调用rjava时遇到的错误: 库(rJava)错误:“r Java”的包或命名空间加载失败:“r Java”的.OnLoad在loadNamespace()中失败,详细信息:调用:dyn.load(file,DLLpath=DLLpath,...)错误:无法加载共享对象“/library/framework/r.framework/versions/3.6/resources/

  • 尝试编译和链接JNI progam 然后我继续转到R,并将rJava包作为源代码安装,如下所示:,然后转到 然后,当我使用以下命令检查版本时:

  • 我希望在R x64 3.1.2中加载rJava。OS-Windows 8.1 64位 尽管安装似乎工作正常: 我在加载包时出错: 卸载和重新安装R似乎也不能修复问题。 删除旧的java版本也无济于事。

  • 问题内容: 我在带有R版本3.5.1的Ubuntu 18.04计算机上,通过此链接安装。我试图安装CRAN包 rJava ,这是我做下面的方式(如看到这里): 但是,我得到这个: 但是当我尝试: 我得到: 如何克服这个问题呢?基本上,我需要安装才能安装和使用。在Ubuntu 16.04中,我没有任何问题。 编辑: 显然,应由提供。我确实已经安装了最新版本,为什么我仍然看到错误? 问题答案: API

  • 我已经安装了R 3.3.3,现在尝试将其更新到3.4.1版本。使用了以下说明: sudo-H gedit/etc/apt/sources . list deb http://cran.rstudio.com/bin/linux/ubuntu precise/sudo apt-get更新sudo apt-get安装r-base 毕竟,安装的版本仍然是R3.3.3。 还尝试从usr/local/bin