Исключение Java возникло во время начальной загрузки rJava при попытке использовать табулизатор

Я использую Mac OS 10.13.6 и использую RStudio 1.1.8, R 3.5.3, Java 11. Если аппаратное обеспечение может иметь значение, я использую MacBook Air 2013 года.

Я пытаюсь запустить функцию extract_table из пакета r tabulizer в книге кодов мировых религий Correlates of War, доступной здесь. Кажется, я застрял из-за ошибки с 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.

Пожалуйста, дайте мне знать, если я могу предоставить любую дополнительную информацию.

Спасибо!


person user7201984    schedule 07.04.2019    source источник
comment
это должно помочь: использовать другую предыдущую версию Java"> stackoverflow.com/questions/46465618/   -  person R.S.    schedule 08.04.2019
comment
спасибо за предложение! к сожалению, я уже сделал это - именно так я в первую очередь запустил Java 11 вместо Java 12, и это не изменило проблему, с которой я столкнулся. я обновлю свой вопрос, чтобы быть более ясным об этом.   -  person user7201984    schedule 08.04.2019
comment
в Ubuntu Linux, что исправило мои проблемы с rJava, так это установить для переменной среды JAVA_HOME значение /usr/lib/jvm/java-8-oracle/jre . Что на самом деле примечательно, так это то, что обычно вы устанавливаете JAVA_HOME в /usr/lib/jvm/java-8-oracle, но rJava работает только тогда, когда он указывает на каталог jre внутри. Я не могу сказать, насколько это уместно для Mac, но я думаю, что установка некоторой переменной среды должна быть ключом к решению этой проблемы.   -  person R.S.    schedule 10.04.2019
comment
Привет, это отсортировано? Я также начал получать эту ошибку. :(.   -  person Harshal Gajare    schedule 20.06.2019
comment
Я только начал получать эту ошибку, и ни одно из решений в Интернете не помогло мне.   -  person AyeTown    schedule 14.02.2020


Ответы (1)


  1. Перейдите к /Library/Java/JavaVirtualMachines и удалите JDK 12.
  2. Переустановите JDK 11.
  3. sudo R CMD javareconf в терминале.
person user85786    schedule 31.05.2019
comment
Переустановите JDK 11. не могли бы вы уточнить, это выглядит легче сказать, чем сделать - person MichaelChirico; 18.06.2019