我正在运行Mac OS 10.13.6,并使用RStudio 1.1.8,R 3.5.3,Java11。如果硬件可能很重要,我将使用2013 MacBook Air。
我正在尝试从《战争相关的世界宗教密码本》(here)上的r制表包中运行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的情况下。
请告知我是否可以提供其他信息。
谢谢!
答案 0 :(得分:0)
sudo R CMD javareconf
在终端中。