R: Не вдалося встановити пакет rJava


116

Під час установки rJava за допомогою install.packages("rJava")команди я отримую таку помилку:

checking Java support in R... present:
interpreter : '/usr/bin/java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : '-I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include/linux'
java libs   : '-L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/server -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64 -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/amd64 -L -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’

У мене встановлений Java JDK і java -versionповертає наступне:

$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

Коли Googling навколо помилки, я бачу, що у інших виникає така ж проблема, але не знаходять рішення, крім "встановити весь JDK, а не тільки JRE", який я зробив.

Інша річ, яку я прочитав - це запустити, sudo R CMD javareconfякий працює досить щасливо, без помилок.

Будь-які ідеї, в чому моя проблема?

[[EDIT]] Минуло кілька місяців, як я мав цю проблему. Я спочатку вирішив це шляхом редагування моїх шляхів Java, як показано у відповіді, яку я розмістив нижче. Я нещодавно зіткнувся з тим же питанням на новій установці Ubuntu. Я спробував рекомендацію Дірка використовувати apt-get для встановлення пакету rJava. Це спрацювало чудово. Що я не зміг оцінити спочатку, це те, що встановлення пакетів за допомогою методу apt-get Ubuntu принципово відрізняється від просто завантаження одного пакета за допомогою install.packages () всередині R. Пакети Ubuntu вирішують деякі проблеми, які я не усвідомлював і не оцінював .


Відповідь можна знайти тут також - stackoverflow.com/questions/12872699 / ...
Tejus Прасад

1
Просто роблю тут коментар моєму майбутньому «я» (бо коли я неоднозначно опинився на цьому питанні), що мені потрібно запустити sudo R CMD javareconf, щоб отримати встановлену apt-get, щоб вона була визнана моїм rstudio-сервером.
Джим Крозьє

2
Через дев'ять років, і це нескінченна проблема. Я стикаюся з цим щоразу, коли роблю нову установку R. Щось змінюється .. ОС, версія Rstudio, версія R, java версія, jdk, jre, jvm .... І це завжди нове рішення для її вирішення. Це смішно, що я не можу прочитати файл excel без усього цього глупоти.
rmf

@rmf зараз існує ряд пакетів для читання Excel, які не потребують Java. Мені подобаються прості читання, readxlале я більше віддаю перевагу запису в Excel openxlsx. Не вимагає rJava.
JD Довгий

Відповіді:


114

Не став би

apt-get install r-cran-rjava

було легше? Ви могли попросити мене у користуванніR! :)


3
Сенс Ubuntu та Debian полягає в тому, що вам не потрібно було б в першу чергу google --- він повинен "просто працювати" за допомогою відповідних пакетів. Полегшіть своє життя і використовуйте пакунки, де можна. Я припускаю, що ви також використовували пакети Java Ubuntu?
Дірк Еддельбуеттель,

16
Дірк, ти задаєш ці запитання так, як я маю уявлення про те, що чорт я зробив. Якщо я пам'ятаю, у мене виникли проблеми з установкою Java за допомогою apt-get, тому я створив джерело, і це, мабуть, джерело (всі каламбури призначені) моїх проблем. Звичайно, це може бути лише погана карма.
JD Long

2
Я на R 2.15.3 ubuntu 12.04.2 64bit. коли я update.packages()отримую, я помічаю, що є rJava update. Установка зсередини R не вдається. Коли я apt-get install r-cran-rjavaне оновлюється. Чому це відбувається?
ECII

1
@DirkEddelbuettel, У моїй Червоній Шапочці "sudo yum install r-cran-rjava" не працює. Каже завантажені плагіни: rhnplugin Ця система отримує оновлення від RHN Classic або RHN Satellite. Налаштування Процесу встановлення Немає пакета r-cran-rjava.
BigDataScientist

1
@DirkEddelbuettel, хоча підхід "він повинен просто працювати" для мене звучить чудово, той факт, що в r-cran-x перераховано лише стільки пакунків, саме тому люди використовують "звичайний" R-шлях (install.packages). Більше того, я щойно взяв вашу пораду про це через кран, який насправді не допомагає, оскільки R 3.x зараз є основним, тоді як пакети в r-cran - мабуть, перед R 3.x
Річард

77

Виявляється, моя проблема була проблемою зі JAVA_HOMEзмінною середовища. Так, шокуюче я знаю. Моя початкова настройка для PATHта JAVA_HOMEвиглядала так:

export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

І я додав, /jreщоб тепер це виглядає приблизно так:

export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre
export PATH=$PATH:$JAVA_HOME/bin

На Java все здавалося, що добре працює, /jreале rJava не буде. Незвичайно.


5
Дотримуючись справжнього значення "переповнення стека", створюючи питання -> відповідь нескінченного циклу --- мені це подобається.
DrewConway

10
Дякую. Зробив трохи, щоб переконатися, що майбутні користувачі Google зможуть знайти відповіді на свої R питання!
JD Long

11
Змінивши JAVA_HOME і шлях до виконуваного файлу Java, я виявив, що мені потрібно запустити R CMD javareconf. В іншому випадку процес установки rJava все ще бачить старі місця заголовків і бібліотек тощо
Carlos Macasaet

1
Ніщо не працювало для мене. Я намагаюся встановити "rJava" на сервер Red Hat Linux, де я обслуговую кілька програм R Shiny. Я отримую таку помилку: конфігурація не вдалася до пакету 'rJava' * видалення '/ usr / lib64 / R / library / rJava'. Я зробив наступні кроки в процесі усунення помилки. 1. Оновлена ​​Java в Linux sudo yum install java-1.7.0-openjdk 2. Встановіть HOME і PATH export JAVA_HOME = / usr / lib / jvm / java-1.7.0-ibm-1.7.0.6.1.x86_64 / jre експортувати PATH = $ PATH: $ JAVA_HOME / bin 3. Переконфігурований Java sudo / usr / bin / R CMD javareconf
BigDataScientist

Так, працює, я використовував 8-oracleверсію замість цього.
gunzapper

21

Дякую - Ваша пропозиція щодо $JAVA_HOMEтого, щоб привести мене до подібного рішення:

prompt$ unset JAVA_HOME

перш ніж викликати Р.


1
unset JAVA_HOME (без знака долара)
Владтн

1
Так, це вирішило мою проблему. Чи можете ви поясніть, чому? Спасибі
MichaelZ

зніміть JAVA_HOME і встановіть CLASSPATH = $ CLASSPATH: / usr / lib64 / R / share / java
42n4


14

Ось як я змушую це працювати:

У Linux (Ubuntu 16.04)

sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo R CMD javareconf

в R:

install.packages("rJava")

1
дякую ... мені потрібно було встановити щось, що називається rcdk в R, яке впало, тому що "java не працювало". Ваша робота вирішила проблему (Ubuntu 18.04)
користувач1945827

Дуже радий допомогти!
Джим Чен

11

Це працювало для мене на Ubuntu 12.04 та R версії 3.0

cd /usr/lib/jvm/java-6-sun-1.6.0.26/include

це каталог, який має jni.h

Далі створіть м'яке посилання на інший необхідний файл заголовка (я лінивий, щоб дізнатися, як включити більше одного каталогу у варіант JAVA_CPPFLAGS нижче):

sudo ln -s linux/jni_md.h .

Нарешті

sudo R CMD javareconf JAVA_CPPFLAGS=-I/usr/lib/jvm/java-6-sun-1.6.0.26/include

1
sudo R CMD javareconf JAVA_CPPFLAGS=-I/usr/lib/jvm/java-6-sun-1.6.0.26/includeвирішив проблему для мене.
Мустафа Альзантот

… І я додам, echo $JAVA_HOMEякщо java-6-sunце не ваш точний каталог.
ізоморфізми

7

нижче - одна з моїх відповідей на інший пост - помилка: не вдається завантажити встановлені пакети зараз
(це також стосується цього питання)

Для користувачів Linux (Ubuntu): Якщо у вас встановлено oracle-java (7/8) . Він буде в цьому місці /usr/lib/jvmта sudoпотрібен доступ.

Створіть файл /etc/ld.so.conf.d/java.confз наступними записами:

/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server

(Замініть java-8-oracle на java-7-oracle, залежно від версії java)

Тоді:

sudo ldconfig

Перезапустіть RStudio, а потім встановіть пакет rJava.


1
Я спробував декілька рішень з різним ступенем успіху, але це перше рішення, на яке я натрапив, але виявляється стійким (тобто не вимагає повторення тих же 5 кроків щоразу, коли я запускаю R).
SamWN

4

Запуск R під Gentoo на AMD64. Я перейшов до R 2.12.0

R версія 2.12.0 (2010-10-15) Авторське право (C) 2010 Фонд R для статистичних обчислень ISBN 3-900051-07-0 Платформа: x86_64-pc-linux-gnu (64-розрядна), і ці примхливі повідомлення пішли геть.

Ян Вандермер


2

Я спробував встановити openjdk-7- *, але все ж у мене виникли проблеми з установкою rJava. Виявляється після перезавантаження комп'ютера, тоді проблем взагалі не було.

так

sudo apt-get install openjdk-7-*


RESTART after installing java, then try to install package "rJava" in R

2

Пакет rJava шукає /usr/lib/jvm/default-java/папку. Але він недоступний як за замовчуванням. Ця папка містить симпосилання для Java-програми за замовчуванням, налаштованої для системи.

Щоб активувати Java за замовчуванням, встановіть такі пакети:

sudo apt-get install default-jre default-jre-headless

Тестовано на ubuntu 17.04 з CRAN R 3.4.1


2

Що для мене працювало - це зміни JAVA_HOME з файлу /usr/lib/R/etc/javaconf

Я перший перевірив , що моя версія Java включена: sudo update-alternatives --config java. У моєму випадку це булоjava-8-oracle

Я відкрив файл /usr/lib/R/etc/javaconfі замінити default-javaна java-8-oracle:

${JAVA_HOME=/usr/lib/jvm/default-java}

замінено на:

${JAVA_HOME=/usr/lib/jvm/java-8-oracle}

І потім sudo R CMD javareconf

Я перезапустив RStudio, а потім міг встановити rJava.


1

що я тут роблю:

  1. у /etc/apt/sources.list, додати:

    deb http://ftp.de.debian.org/debian sid main

Примітка: rjava повинна бути останньою версією

2 запуск: sudo apt-отримати оновлення sudo apt-get install r-cran-rjava

Після оновлення старої версії rjava можна встановити rhdfs_1.0.8.



1

Я зіткнувся з тією ж проблемою під час використання Windows 10. Я вирішив проблему, використовуючи наступну процедуру

  1. Завантажте Java з https://java.com/en/download/windows-64bit.jsp для 64-бітних вікон \ Встановіть
  2. Завантажте комплект для розробки Java з https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html для 64-розрядних вікон \ Встановіть
  3. Потім клацніть правою кнопкою миші на піктограмі «Цей ПК» на робочому столі \ Властивості \ Розширені налаштування системи \ Розширені \ Змінні середовища \ У розділі Системні змінні виберіть Шлях \ Клацніть Редагувати \ Клацніть на Нове \ Скопіюйте та вставте контури "C: \ Program Files \ Java \ jdk1 .8.0_201 \ bin "та" C: \ програмні файли \ Java \ jre1.8.0_201 \ bin "(без лапок) \ OK \ OK \ OK

Примітка : jdk1.8.0_201 та jre1.8.0_201 будуть змінені залежно від версії Java Development Kit та Java

  1. У вікні змінних довкілля перейдіть до змінних користувача для користувача \ натисніть кнопку Створити \ Поставте ім'я змінної як "JAVA_HOME" та значення змінної як "C: \ Файли програми \ Java \ jdk1.8.0_201 \ bin" \ Натисніть OK

Щоб перевірити встановлення, відкрийте CMD \ Type javac \ Натисніть Enter та Введіть java \ натисніть Enter введіть тут опис зображення

В RStudio запустити

Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")

Примітка : jdk1.8.0_201 буде змінено залежно від версії набору Java

Тепер ви можете без проблем встановити та завантажити пакет rJava.


0

Проблема полягала в тому, що rJava не буде встановлено у RStudio( Version 1.0.136). Наступне працювало для мене ( macOS Sierra version 10.12.6) (знайдено тут ):

Крок 1: Завантаження і установка javaforosx.dmgз тут

Крок 2: Далі, запустіть команду зсередини RStudio:

install.packages("rJava", type = 'source')

-2

Я зіткнувся з подібною проблемою на Ubuntu 16.04 і зміг її вирішити, створивши папку з назвою "default-java" /usr/lib/jvmі скопіювавши в неї весь вміст /usr/lib/jvm/java-8-oracle. Я вибрав це рішення як виправлення змінної середовища JAVA_HOME, виявилося, не даремно.


1
Це порушить встановлення default-jreпакета.
Густаво Гарсія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.