3

我正在运行 Mac OS 10.13.6,并使用 RStudio 1.1.8、R 3.5.3、Java 11。如果硬件可能很重要,我使用的是 2013 MacBook Air。

我正在尝试从战争世界宗教密码本的相关性中的 r tabulizer 包中运行 extract_table 函数,可在此处获得。由于 rJava 的错误,我似乎陷入了困境。rJava 库似乎可以很好地加载到 RStudio 中,但是当我运行以下行时:

lst <- tabulizer::extract_tables("/Users/[me]/Downloads/wrp-codebook-bibliography.pdf", encoding="UTF-8")

或尝试加载制表器库,我收到以下错误:

WARNING: Initial Java 12 release has broken JNI support and does NOT work. Use stable Java 11 (or watch for 12u if avaiable).
ERROR: Java exception occurred during rJava bootstrap - see stderr for Java stack trace.
Exception in thread "main" java.lang.NullPointerException
    at java.base/jdk.internal.reflect.Reflection.verifyMemberAccess(Reflection.java:130)
    at java.base/java.lang.reflect.AccessibleObject.slowVerifyAccess(AccessibleObject.java:673)
    at java.base/java.lang.reflect.AccessibleObject.verifyAccess(AccessibleObject.java:666)
    at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:638)
    at java.base/java.lang.reflect.Field.checkAccess(Field.java:1075)
    at java.base/java.lang.reflect.Field.get(Field.java:416)
Error: .onLoad failed in loadNamespace() for 'tabulizerjars', details:
  call: .jcheck(silent = FALSE)
  error: java.lang.NullPointerException.jcall(f, "Ljava/lang/Object;", "get", .jcast(ic, "java/lang/Object"))new("jobjRef", jobj = <pointer: 0x10caa0870>, jclass = "java/lang/NullPointerException")

编辑:为清楚起见,以下部分已根据收到的评论进行了更新。

起初我以为是我需要从 Java 12 切换到 Java 11,所以我在 SO 上找到了一篇有用的帖子,并使用以下命令进行切换,而我这样做时没有运行 RStudio 或 R 的实例:

MacBook-Air:~ $ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    12, x86_64: "Java SE 12"    /Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
    11.0.2, x86_64: "Java SE 11.0.2"    /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
MacBook-Air:~ $ export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

自他们以来问题一直存在,当我在终端中仔细检查我的 Java 版本时,我得到了这个:

MacBook-Air:~ $ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

所以在我看来,我正在运行 11。

但是,我还安装了 12 个:

MacBook-Air:~ $ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    12, x86_64: "Java SE 12"    /Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
    11.0.2, x86_64: "Java SE 11.0.2"    /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home

我不确定 R 是否正在查看版本 12,或者如何重定向它,或者这里是否还有另一个问题。不幸的是,我无法在 google 或 SO 上找到任何关于此错误的信息,特别是在 R 和 rJava 的上下文中。

如果我可以提供任何其他信息,请告诉我。

谢谢!

4

2 回答 2

0
  1. 导航到 /Library/Java/JavaVirtualMachines 并删除 JDK 12
  2. 重新安装 JDK 11。
  3. sudo R CMD javareconf在终端。
于 2019-05-31T03:23:21.480 回答
0

我重新安装了 rJava,它成功了!

使用: install.packages("rjava")

于 2021-09-03T13:40:55.213 回答