Заставьте rJava или R использовать другую (предыдущую) версию Java

Кажется, что последняя версия java не позволяет rJava загружаться или компилироваться/устанавливаться.

Есть ли способ установить java8 и java9 и заставить rJava или R использовать версию java8?


Изменить: было высказано предположение, что, возможно, это thread — это решение моей проблемы, но это не так. Так как мне нужно использовать более низкую версию, а не новую. Кажется, можно сказать R, где находится java_home, но я не знаю, как это сделать.


person lpuerto    schedule 28.09.2017    source источник


Ответы (1)


Посмотрите здесь: приключения R, Java, rJava и macOS и здесь: R 3.4, rJava, macOS и еще много чего ;)

R, Java и правильные настройки, которые делают каждую часть программного обеспечения счастливой, могут быть проблемой;)

Вам нужно поиграться с JAVA_HOME, R CMD javareconf, а иногда даже с компиляцией rJava из исходников.

Если вам нужна определенная версия Java только для R, вы всегда можете поиграть с чем-то вроде этого.

Сначала получите список JVM.

/usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    9, x86_64:  "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
    1.8.0_144, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
    1.8.0_111, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
    1.7.0_80, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home

Затем выберите один непосредственно перед запуском R

-- start_R_with_Java_8.sh --
#!/bin/bash
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_144)
export PATH=$JAVA_HOME/bin:${PATH}
R

Таким образом, в системе у вас будет Java 9, а для R — 1.8.

person Oo.oO    schedule 02.10.2017
comment
Большое спасибо за вклад, и я думаю, что добавлю его в закладки для дальнейшего использования, но это не точное решение, которое я ищу. Прямо сейчас все работает и работает, но решил удалить Java9 и переустановить Java8, то же самое, что они используют в этом примере. Мне не нужно настраивать много вещей, как в примере, чтобы все работало с Java8. Проблема здесь, похоже, в том, что rJava на самом деле несовместима с Java9. По этой причине я искал способ иметь обе и использовать более низкую версию для R и обновленную версию для остальных вещей. - person lpuerto; 02.10.2017
comment
Но поскольку для правильной работы с R нужно редактировать JAVA_HOME, такая настройка кажется очень сложной. Обратный путь кажется очень простым. Я имею в виду, заставить R использовать последнюю версию и иметь больше версий для других вещей, если это необходимо. Я также пробовал jenv, но, похоже, он не совсем совместим с R. - person lpuerto; 02.10.2017
comment
В этом случае, я думаю, вы можете убедиться, что JAVA_HOME указывает на Java8 (перед запуском R). Таким образом, вы можете создать сценарий-оболочку для R, в котором вы просто установите для JAVA_HOME значение Java 8 и запустите R. Для остальной системы это по-прежнему будет Java 9. Кроме того, вам может потребоваться перенастроить R для повторного использования Java 8. - person Oo.oO; 02.10.2017
comment
Это решение, которое, возможно, я попробую в ближайшем будущем, если они не исправят rJava. Я уже провел день, играя с проблемой, и у меня действительно не так много времени для этого. И прямо сейчас мне не нужно обновляться до Java9, если только это не связано с безопасностью. - person lpuerto; 02.10.2017