Mac OS 10.13.6 を実行しており、RStudio 1.1.8、R 3.5.3、Java 11 を使用しています。ハードウェアが問題になる場合に備えて、2013 MacBook Air を使用しています。
ここで入手できる Correlates of War World Religion Codebook の 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 を見ているのか、それをリダイレクトする方法があるのか 、それともここに別の問題があるのか どうかはわかりません。残念ながら、特に R と rJava のコンテキストで、このエラーについて Google または SO で何も見つけることができませんでした。
追加情報を提供できるかどうかお知らせください。
ありがとう!