R: Die Installation des rJava-Pakets schlägt fehl


116

Bei der Installation von rJava mit dem install.packages("rJava")Befehl wird folgende Fehlermeldung angezeigt :

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’

Ich habe das Java JDK installiert und java -versiongebe Folgendes zurück:

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

Wenn ich nach dem Fehler google, sehe ich, dass andere das gleiche Problem haben, aber keine andere Lösung finden als "das gesamte JDK installieren, nicht nur die JRE", was ich getan habe.

Das andere, was ich gelesen habe, war zu laufen, sudo R CMD javareconfwas ziemlich fehlerfrei läuft.

Irgendwelche Ideen, was mein Problem ist?

[[EDIT]] Es ist ein paar Monate her, seit ich dieses Problem hatte. Ich hatte dies zunächst durch Bearbeiten meiner Java-Pfade gelöst, wie in der Antwort unten dargestellt. Ich bin kürzlich bei einer neuen Ubuntu-Installation auf dasselbe Problem gestoßen. Ich habe Dirks Empfehlung ausprobiert, das rJava-Paket mit apt-get zu installieren. Es hat perfekt funktioniert. Was ich anfangs nicht zu schätzen wusste, ist, dass die Installation von Paketen mit der Ubuntu apt-get-Methode sich grundlegend vom Laden desselben Pakets mit install.packages () innerhalb von R unterscheidet. Die Ubuntu-Pakete lösen einige Probleme, die ich nicht erkannt oder geschätzt habe .


Antwort finden Sie auch hier - stackoverflow.com/questions/12872699/…
Tejus Prasad

1
Ich möchte hier nur einen Kommentar zu meinem zukünftigen Selbst abgeben (wenn ich mich zweifellos wieder bei dieser Frage befinde), dass ich sudo R CMD javareconf ausführen musste, damit die apt-get-Installation von meinem rstudio-Server erkannt wird.
Jim Crozier

2
Neun Jahre später und das ist ein nie endendes Problem. Ich stoße jedes Mal darauf, wenn ich eine neue Installation von R mache. Etwas ändert sich. Betriebssystem, Rstudio-Version, R-Version, Java-Version, JDK, JRE, JVM ... Und es ist immer eine neue Lösung, um es zu lösen. Es ist lächerlich, dass ich ohne all diesen Mist keine Excel-Datei lesen kann.
rmf

@rmf Es gibt jetzt eine Reihe von Excel-Lesepaketen, für die kein Java erforderlich ist. Für einfache Lesevorgänge mag ich, readxlaber für das Zurückschreiben in Excel bevorzuge ich openxlsx. Weder erfordert rJava.
JD Long

Antworten:


114

Würde nicht

apt-get install r-cran-rjava

war einfacher? Du hättest mich bei useR fragen können! :) :)


3
Der Punkt von Ubuntu und Debian ist, dass Sie nicht in erster Linie googeln müssen - es sollte "nur funktionieren" mit den richtigen Paketen. Erleichtern Sie sich das Leben und verwenden Sie Pakete, wo Sie können. Ich nehme an, Sie haben auch Ubuntus Java-Pakete verwendet?
Dirk Eddelbuettel

16
Dirk, du stellst diese Fragen, als hätte ich eine Ahnung, was zum Teufel ich getan habe. Wenn ich mich recht erinnere, hatte ich Probleme bei der Installation von Java mit apt-get, also habe ich aus dem Quellcode erstellt und das ist wahrscheinlich die Quelle (alle Wortspiele beabsichtigt) meiner Probleme. Natürlich könnte es nur schlechtes Karma sein.
JD Long

2
Ich bin auf R 2.15.3 Ubuntu 12.04.2 64bit. Wenn ich es update.packages()bekomme, bemerke ich, dass es eine gibt rJava update. Die Installation innerhalb von R schlägt fehl. Wenn ich apt-get install r-cran-rjavakein Update zur Verfügung habe. Warum passiert dies?
ECII

1
@DirkEddelbuettel, In meinem Red Hat funktioniert 'sudo yum install r-cran-rjava' nicht. Sagt Loaded Plugins: rhnplugin Dieses System erhält Updates von RHN Classic oder RHN Satellite. Installationsprozess einrichten Kein Paket r-cran-rjava verfügbar.
BigDataScientist

1
@DirkEddelbuettel, während der Ansatz "es sollte nur funktionieren" für mich großartig klingt, ist die Tatsache, dass nur so viele Pakete in r-cran-x aufgeführt sind, der Grund, warum Leute den "normalen" R-Weg (install.packages) verwenden. Außerdem habe ich gerade Ihren Rat befolgt, dies über Cran zu tun, was wirklich nicht hilft, da R 3.x jetzt Mainstream ist, während Pakete in R-Cran anscheinend vor R 3.x liegen
Richard

77

Es stellte sich heraus, dass mein Problem ein Problem mit meiner JAVA_HOMEUmgebungsvariablen war. Ja, schockierend, ich weiß. Meine anfängliche Einstellung für PATHund JAVA_HOMEsah so aus:

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

Und ich habe hinzugefügt, /jreso dass es jetzt so aussieht:

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

Alles in Java schien ohne das /jregut zu funktionieren, aber rJava würde es nicht. Seltsam.


5
Halten Sie sich an die wahre Bedeutung von "Stapelüberlauf", indem Sie eine Frage erstellen -> Endlosschleife beantworten --- Ich mag es.
DrewConway

10
Vielen Dank. Ich trage meinen Teil dazu bei, dass zukünftige Google-Nutzer Antworten auf ihre R-Fragen finden können!
JD Long

11
Nachdem ich JAVA_HOME und den Pfad zur ausführbaren Java-Datei geändert hatte, musste ich ausgeführt werden R CMD javareconf. Andernfalls werden bei der Installation von rJava immer noch die alten Speicherorte von Headern, Bibliotheken usw.
angezeigt

1
Bei mir hat nichts funktioniert. Ich versuche, "rJava" auf dem Red Hat Linux-Server zu installieren, auf dem ich einige R Shiny-Anwendungen bereitstelle. Ich erhalte den folgenden FEHLER: Konfiguration für Paket 'rJava' fehlgeschlagen * Entfernen von '/ usr / lib64 / R / library / rJava'. Ich habe die folgenden Schritte ausgeführt, um den Fehler zu beheben. 1. Java unter Linux aktualisiert sudo yum install java-1.7.0-openjdk 2. Setzen Sie den HOME- und PATH-Export JAVA_HOME = / usr / lib / jvm / java-1.7.0-ibm-1.7.0.6.1.x86_64 / jre export PATH = $ PATH: $ JAVA_HOME / bin 3. Rekonfiguriertes Java sudo / usr / bin / R CMD javareconf
BigDataScientist

Ja, es funktioniert, ich habe 8-oraclestattdessen die Version verwendet.
Gunzapper

21

Danke - Ihr Vorschlag über $JAVA_HOMEführt mich zu einer ähnlichen Lösung:

prompt$ unset JAVA_HOME

vor dem Aufrufen von R.


1
nicht gesetzt JAVA_HOME (kein Dollarzeichen)
Vladtn

1
Ja, das hat mein Problem behoben. Können Sie bitte erklären, warum? Danke
MichaelZ

Deaktivieren Sie JAVA_HOME und setzen Sie CLASSPATH = $ CLASSPATH: / usr / lib64 / R / share / java
42n4


14

So mache ich es möglich:

Unter Linux (Ubuntu 16.04)

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

in R:

install.packages("rJava")

1
danke ... Ich musste etwas namens rcdk in R installieren, das herunterfiel, weil Java nicht funktionierte. Ihre Arbeit hat das Problem gelöst (Ubuntu 18.04)
user1945827

Wirklich gerne helfen!
Jim Chen

11

Dies funktionierte für mich unter Ubuntu 12.04 und R Version 3.0

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

Dies ist das Verzeichnis mit jni.h.

Erstellen Sie als Nächstes einen Softlink zu einer anderen erforderlichen Header-Datei (ich bin zu faul, um herauszufinden, wie mehr als ein Verzeichnis in die unten stehende Option JAVA_CPPFLAGS aufgenommen werden kann):

sudo ln -s linux/jni_md.h .

Schließlich

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/includelöste das Problem für mich.
Moustafa Alzantot

… Und ich würde hinzufügen, echo $JAVA_HOMEfalls java-6-sunes nicht Ihr genaues Verzeichnis ist.
Isomorphismen

7

Unten ist eine meiner Antworten auf einen anderen Beitrag - Fehler: Installierte Pakete können gerade nicht geladen werden
(dies ist auch für diese Frage relevant)

Für Linux (Ubuntu) Benutzer: Wenn Sie Oracle-Java (7/8) installiert haben. Es wird an diesem Ort sein /usr/lib/jvmund sudoZugang ist erforderlich.

Erstellen Sie die Datei /etc/ld.so.conf.d/java.confmit den folgenden Einträgen:

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

(Ersetzen Sie Java-8-Orakel durch Java-7-Orakel, abhängig von Ihrer Java-Version)

Dann:

sudo ldconfig

Starten Sie RStudio neu und installieren Sie das rJava-Paket.


1
Ich habe mehrere Lösungen mit unterschiedlichem Erfolg ausprobiert, aber dies ist die erste Lösung, auf die ich gestoßen bin, die belastbar zu sein scheint (dh es müssen nicht bei jedem Start von R dieselben 5 Schritte wiederholt werden).
SamWN

4

Ausführen von R unter Gentoo auf einem AMD64. Ich habe ein Upgrade auf R 2.12.0 durchgeführt

R-Version 2.12.0 (15.10.2010) Copyright (C) 2010 Die R-Stiftung für statistische Datenverarbeitung ISBN 3-900051-07-0 Plattform: x86_64-pc-linux-gnu (64-Bit) und diese lästigen Nachrichten gingen Weg.

Jan Vandermeer


2

Ich habe versucht, openjdk-7- * zu installieren, aber ich hatte immer noch Probleme bei der Installation von rJava. Es stellte sich heraus, dass es nach dem Neustart meines Computers überhaupt kein Problem gab.

so

sudo apt-get install openjdk-7-*


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

2

Das rJava-Paket sucht nach dem /usr/lib/jvm/default-java/Ordner. Es ist jedoch nicht standardmäßig verfügbar. Dieser Ordner verfügt über einen Symlink für das für das System konfigurierte Standard-Java.

Um das Standard-Java zu aktivieren, installieren Sie die folgenden Pakete:

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

Getestet auf Ubuntu 17.04 mit CRAN R 3.4.1


2

Was für mich funktioniert hat, war das Ändern von JAVA_HOME aus der Datei /usr/lib/R/etc/javaconf

Ich habe zuerst überprüft, welche Version von Java aktiviert war : sudo update-alternatives --config java. In meinem Fall war esjava-8-oracle

Ich habe die Datei geöffnet /usr/lib/R/etc/javaconfund ersetzt default-javadurch java-8-oracle:

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

ersetzt durch :

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

Und dann sudo R CMD javareconf

Ich habe RStudio neu gestartet und konnte dann rJava installieren.


1

was ich mache ist hier:

  1. Fügen Sie in /etc/apt/sources.list Folgendes hinzu:

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

Hinweis: Der rjava sollte die neueste Version sein

2 run: sudo apt-get update sudo apt-get installiere r-cran-rjava

Sobald Sie die alte Version von rjava aktualisiert haben, können Sie rhdfs_1.0.8 installieren.



1

Ich hatte das gleiche Problem unter Windows 10. Ich habe das Problem mit dem folgenden Verfahren gelöst

  1. Laden Sie Java von https://java.com/de/download/windows-64bit.jsp für 64-Bit-Fenster herunter. \ Installieren Sie es
  2. Laden Sie das Java Development Kit von https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html für 64-Bit-Windows \ Install it herunter
  3. Klicken Sie dann mit der rechten Maustaste auf das Symbol "Dieser PC" unter Desktop \ Eigenschaften \ Erweiterte Systemeinstellungen \ Erweitert \ Umgebungsvariablen \ Wählen Sie unter Systemvariablen Pfad \ Klicken Sie auf Bearbeiten \ Klicken Sie auf Neu \ Pfade kopieren und einfügen "C: \ Programme \ Java \ jdk1 .8.0_201 \ bin ”und“ C: \ Programme \ Java \ jre1.8.0_201 \ bin ”(ohne Anführungszeichen) \ OK \ OK \ OK

Hinweis : jdk1.8.0_201 und jre1.8.0_201 werden abhängig von der Version von Java Development Kit und Java geändert

  1. Gehen Sie im Fenster Umgebungsvariablen zu Benutzervariablen für Benutzer \ Klicken Sie auf Neu \ Variablenname als "JAVA_HOME" und Variablenwert als "C: \ Programme \ Java \ jdk1.8.0_201 \ bin" \ Drücken Sie OK

Um die Installation zu überprüfen, öffnen Sie CMD \ Typ javac \ Drücken Sie die Eingabetaste und geben Sie java ein \ drücken Sie die Eingabetaste. Es wird angezeigt Geben Sie hier die Bildbeschreibung ein

In RStudio laufen

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

Hinweis : jdk1.8.0_201 wird abhängig von der Version des Java Development Kit geändert

Jetzt können Sie das rJava-Paket problemlos installieren und laden.


0

Das Problem war, dass rJava nicht in RStudio( Version 1.0.136) installiert wird . Folgendes hat bei mir funktioniert ( macOS Sierra version 10.12.6) ( hier zu finden ):

Schritt-1: Herunterladen und Installieren javaforosx.dmgvon hier

Schritt 2: Führen Sie als Nächstes den Befehl in RStudio aus:

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

-2

Ich habe unter Ubuntu 16.04 ein ähnliches Problem festgestellt und konnte es lösen, indem ich einen Ordner mit dem Namen "default-java" erstellt /usr/lib/jvmund den gesamten Inhalt von in den Ordner kopiert habe /usr/lib/jvm/java-8-oracle. Ich habe mich für diese Lösung entschieden, da sich herausstellte, dass die Korrektur der Umgebungsvariablen JAVA_HOME keinen Nutzen hat.


1
Dadurch wird die default-jrePaketinstallation unterbrochen.
Gustavo Garcia
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.