【问题标题】:Problems to configure Java for using in R version 3.5.0 and use rJava and coreNLP libraries配置 Java 以在 R 版本 3.5.0 中使用以及使用 rJava 和 coreNLP 库的问题
【发布时间】:2018-07-02 07:42:46
【问题描述】:

几天前我下载了一个安装的新 R 版本:

R 版本 3.5.0 (2018-04-23) -- "Joy in Playing" 版权所有 (C) 2018 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin15.6.0 (64-bit)

还有一个新的 RStudio 版本:

Rstudio 版本 1.1.423

但是,当我尝试加载 rJava 库时,我收到了以下错误消息:

> library("rJava", 
lib.loc="/Library/Frameworks/R.framework/Versions/3.5/Resources/library")
Error: package or namespace load failed for ‘rJava’:
.onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object 
  '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/
  rJava.so':  
  dlopen(/Library/Frameworks/R.framework/Versions/3.5/Resources/library/
  rJava/libs/rJava.so, 6): Library not loaded: 
/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib/server/
libjvm.dylib
Referenced from: 
/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/
libs/rJava.so
Reason: no suitable image found.  Did find:
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libjvm.dylib: 
mach-o, but wrong architecture
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/libclient.dylib 
: mach-o, but wrong architecture

我使用的是 Mac,我的操作系统是:

OS X Sierra 10.12.6。

当我看到 rJava 不起作用时,我安装了以下 java 更新:

java 8 更新 171

并重新启动计算机。然后我尝试再次使用 rJava 和 coreNLP 并显示相同的错误消息。

所以,我想也许我需要一个旧版本的 java 并为 macOS 2017-001 安装了 java,它显然为 macOS 10.13 High Sierra、macOS 10.12 Sierra、macOS 10.11 El Capitan、macOS 10.10 Yosemite 安装了旧的 Java 6 运行时、macOS 10.9 Mavericks、macOS 10.8 Mountain Lion 和 macOS 10.7 Lion。 我从以下渠道获得了这个版本:

https://support.apple.com/kb/dl1572?locale=es_ES 

安装此软件包后,我再次重新启动计算机,打开 Rstudio 并再次尝试加载 rJava 和 coreNLP 并显示相同的错误消息。在寻找解决方案后,我在网上找到了一个建议,在mac终端上运行以下命令行:

sudo R CMD javareconf

我确实运行了该命令,但收到以下关于 jni.h 文件的错误消息:

MacBook-Air-de-Juan:~ juancarlos$ sudo R CMD javareconf
Password:
Java interpreter : /usr/bin/java 
Java version     : 1.6.0_65
Java home path   : /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
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/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries -ljvm
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   - 
I/usr/local/include   -fPIC  -Wall -g -O2  -c conftest.c -o conftest.o
conftest.c:1:10: fatal error: 'jni.h' file not found
#include <jni.h>
     ^~~~~~~
1 error generated.
make: *** [conftest.o] Error 1
Unable to compile a JNI program


JAVA_HOME        : /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Java library path: 
JNI cpp flags    : 
JNI linker flags : 
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.

我不得不说我不是系统或计算机工程师,我对这些问题的了解仅限于我在互联网上找到的东西。有人可以帮我弄清楚这个错误消息是什么意思,以及如何修复它以便能够在 R 中使用 Java 并运行 rJava 和 coreNLP?

【问题讨论】:

    标签: java r rstudio stanford-nlp rjava


    【解决方案1】:

    最后我卸载了 Java 环境、rJava 和 coreNLP。之后我重新安装了 java version-8u171、java development kit version jdk-8u171、rJava 和 coreNLP。 一旦我这样做了,我就毫无问题地加载了 de rJava 和 CoreNLP 库。

    我建议按照 github 的以下链接中的说明进行操作:

    https://github.com/MTFA/CohortEx/wiki/Run-rJava-with-RStudio-under-OSX-10.10,-10.11-(El-Capitan)-or-10.12-(Sierra)

    就我而言,我认为问题在于安装在我的 Mac 中的 java 开发工具包版本太旧并且与 rJava 和 coreNLP 不兼容。

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 2018-04-13
      • 1970-01-01
      相关资源
      最近更新 更多