правильная установка и настройка openJDK и R

Я относительно новичок в Ubuntu, поэтому я не знаю многих команд, которые, вероятно, стали стандартными для многих из вас, ребята. Я пытаюсь настроить R и с ним необходимые Java-зависимости для установки, например. JGR, rjava и т. Д. Я прочитал довольно много инструкций, чтобы сделать это, но каким-то образом я, должно быть, поступил неправильно. Вот состояние R и Java:

R --version

R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

java -version

java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

R CMD javareconf

Java interpreter : /usr/bin/java
Java version     : 1.6.0_23
Java home path   : /usr/lib/jvm/java-6-openjdk/jre
Java compiler    : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
Java library path: /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
JNI linker flags : -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm
JNI cpp flags    : 

Но когда я пытаюсь установить 'JavaGD' в R, что является зависимостью для JGR, я получаю:

...
checking Java support in R... present:
interpreter : '/usr/bin/java'
cpp flags   : ''
java libs   : '-L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib/jni -L/lib -L/usr/lib -ljvm'
configure: error: One or more Java configuration variables are not set.
Make sure R is configured with full Java support (including JDK). Run
R CMD javareconf
as root to add Java support to R.
...

Любая помощь будет принята с благодарностью. Спасибо!

7
задан 25 January 2012 в 09:07

5 ответов

Не следует слепо устанавливать openjdk-6-jdk. Что помогло мне, так это сменить версию Java. К счастью, для этого есть хороший инструмент Ubuntu:

sudo update-alternatives --config java

Там вы можете увидеть, какие Javas уже доступны в системе, и установить нужный. А затем установите только openjdk-7-jdk или openjdk-6-jdk (или оба)

и только , затем запустите

sudo R CMD javareconf

. Подробнее о выборе Java см. В Сообщество Ubuntu Wiki

PS Для людей, которые приходят сюда из Google: среди прочего, этот пост помогает решить проблемы с установкой rj в R с сообщением об ошибке: R is not configured with full Java support. Please make sure an JDK is installed and run R CMD javareconf. Когда я это сделал, он сказал: NOTE: Your JVM has a bogus java.library.path system property!. Итак: нет необходимости возиться с путями библиотек Java! .

0
ответ дан 25 January 2012 в 09:07

Я не знаком с R, но на основе вашей консоли кажется, что R требует JDK, в то время как у вас есть JRE в качестве домашней переменной JAVA по умолчанию. Я бы посоветовал вам убедиться, что у вас установлен или установлен JDK (sudo apt-get install openjdk-6-jdk).
Также убедитесь, что ваша переменная окружения JAVA_HOME указывает на JDK, а не на JRE (вы можете увидеть в своем выводе, что в настоящее время путь к исходному java установлен на /usr/lib/jvm/java-6-openjdk/jre.

0
ответ дан 25 January 2012 в 09:07

R CMD javareconf от имени root

означает, что вы должны использовать sudo, чтобы выдать команду:

sudo R CMD javareconf

У вас спросят пароль ( ваш обычный пароль пользователя).

0
ответ дан 25 January 2012 в 09:07

Ответ Yossiles помог мне в пути, но вот версия для новичков, которая также опирается на ответ на этот вопрос .

Что для меня сработало, так это: -

1) открыть / etc / environment в вашем любимом txteditor:

sudo gedit /etc/environment

2) добавить новую строку с помощью «JAVA_HOME» и путь к правильному jr-каталогу, в случае java 8, это:

JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"

3) источник обновленной среды и проверка переменной:

source /etc/environment
echo $JAVA_HOME

4) update конфигурация java-R выглядит следующим образом:

sudo R CMD javareconf

5) установите RJava, XLConnect или любой другой j-зависимый R-пакет, который вы ищете.

0
ответ дан 25 January 2012 в 09:07

Да, альтернативы обновления - наиболее удобный механизм связывания для поддержки разных версий JVM - даже от разных провайдеров, таких как Oracle / OpenJDK. Я открыт для исправления, но я бы сказал, что нужен JDK, а не только JVM для настройки R.

Схема для подготовки конфигурации R JAVA:

  1. убедитесь, что требуемая JVM правильно расположена в /usr/lib/jvm
  2. , настройте связывание , используя update-alternatives --install для каждой команды JAVA, требуемой для R
  3. , используйте update-alternatives --configure для выбора JVM по умолчанию
  4. обновите конфигурацию R

Чтобы убедиться, что JDK является уже в правильном расположении, запросите список установленных JVM с помощью команды

ls /usr/lib/jvm

Если папка не содержит JDK, то переместите всю папку JVM из извлеченной tar.gz (загрузка) в /usr/lib/jvm с командой:

sudo mv <JDK folder> /usr/lib/jvm

R требует отдельных записей терминала для альтернатив обновления для следующих команд JAVA:

  • интерпретатор: '/ usr / bin / java'
  • архиватор: '/ usr / bin / jar'
  • компилятор: '/ usr / bin / javac'
  • подготовка заголовка .: '/ usr / bin / javah'

записи для jdk1.8.0_51 следующие:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_51/bin/java" 2

sudo update-alternatives --install "/usr/bin/jar" "jar"  "/usr/lib/jvm/jdk1.8.0_51/bin/jar" 2

sudo update-alternatives --install "/usr/bin/javac" "javac"  "/usr/lib/jvm/jdk1.8.0_51/bin/javac" 2

sudo update-alternatives --install "/usr/bin/javah" "javah"  "/usr/lib/jvm/jdk1.8.0_51/bin/javah" 2

NB. выходные данные после выполнения update-alternatives --install для JVM jdk1.8.0_51 должны быть похожи на выходные данные:

update-альтернативы: использование /usr/lib/jvm/jdk1.8.0_51/bin/java для предоставления / usr / bin / java (java) в автоматическом режиме

для выбора требуемой JVM по умолчанию

sudo update-alternatives --config java

Если настроена только одна JVM, то будет показан следующий вывод в терминале

Существует только одна альтернатива в группе ссылок java (предоставляющая / usr / bin / java): /usr/lib/jvm/jdk1.8.0_51/bin/java Ничего не настраивать.

в качестве альтернативы необходимо выбрать соответствующий номер записи для требуемой JVM

, чтобы убедиться, что правильная JVM связана

java --version

и, наконец, обновить настройку R с помощью:

sudo R CMD javareconf

Обратите внимание, что эта настройка может не сработать, если вы попытались «жестко» настроить вашу JVM другими способами

0
ответ дан 25 January 2012 в 09:07

Другие вопросы по тегам:

Похожие вопросы: