R: installazione del pacchetto rJava non riuscita


116

Durante l'installazione di rJava utilizzando il install.packages("rJava")comando ottengo il seguente errore:

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’

Ho installato Java JDK e java -versionrestituisco quanto segue:

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

Quando cerco l'errore su Google, vedo che altri hanno lo stesso problema ma non trovano una soluzione diversa da "installa l'intero JDK, non solo il JRE" che ho fatto.

L'altra cosa che ho letto è stata eseguire sudo R CMD javareconfche funziona abbastanza felicemente senza errori.

Qualche idea su quale sia il mio problema?

[[EDIT]] Sono passati alcuni mesi da quando ho avuto questo problema. Inizialmente avevo risolto questo problema modificando i miei percorsi Java, come illustrato nella risposta che ho pubblicato di seguito. Recentemente ho riscontrato lo stesso problema su una nuova installazione di Ubuntu. Ho provato la raccomandazione di Dirk di utilizzare apt-get per installare il pacchetto rJava. Ha funzionato perfettamente. Quello che non ho apprezzato inizialmente è che l'installazione di pacchetti utilizzando il metodo apt-get di Ubuntu è fondamentalmente diversa dal semplice caricamento dello stesso pacchetto utilizzando install.packages () all'interno di R. I pacchetti di Ubuntu risolvono alcuni problemi che non avevo realizzato o apprezzato .


risposta può essere trovata anche qui - stackoverflow.com/questions/12872699/...
Tejus Prasad

1
Sto solo facendo un commento qui al mio sé futuro (per quando indubbiamente mi ritroverò a questa domanda) che avevo bisogno di eseguire sudo R CMD javareconf per far sì che apt-get install fosse riconosciuto come mio server rstudio.
Jim Crozier

2
Nove anni dopo e questo è un problema senza fine. Mi imbatto in questo ogni volta che eseguo una nuova installazione di R. Qualcosa cambia .. OS, versione Rstudio, versione R, versione java, jdk, jre, jvm .... Ed è sempre una nuova soluzione per risolverlo. È ridicolo non poter leggere un file Excel senza tutte queste stronzate.
rmf

@rmf ora ci sono un certo numero di pacchetti di lettura Excel che non richiedono Java. Per le letture semplici mi piace, readxlma per riscrivere in Excel preferisco openxlsx. Nessuno dei due richiede rJava.
JD Long

Risposte:


114

non sarebbe

apt-get install r-cran-rjava

è stato più facile? Avresti potuto chiedermelo a useR! :)


3
Il punto di Ubuntu e Debian è che non dovresti avere google in primo luogo: dovrebbe "funzionare" utilizzando i pacchetti appropriati. Rendi la tua vita più facile e usa i pacchetti dove puoi. Presumo che tu abbia usato anche i pacchetti Java di Ubuntu?
Dirk Eddelbuettel

16
Dirk, fai queste domande come se avessi idea di cosa diavolo ho fatto. Se ricordo bene, ho avuto problemi a installare Java usando apt-get, quindi l'ho compilato dai sorgenti e questa è probabilmente la fonte (tutti i giochi di parole sono intesi) dei miei problemi. Ovviamente potrebbe essere solo un cattivo karma.
JD Long

2
Sono su R 2.15.3 ubuntu 12.04.2 64 bit. quando update.packages()ricevo mi accorgo che c'è un file rJava update. L'installazione dall'interno di R non riesce. Quando apt-get install r-cran-rjavanon sono disponibili aggiornamenti. Perché sta succedendo?
ECII

1
@DirkEddelbuettel, Nel mio Red Hat "sudo yum install r-cran-rjava" non funziona. Dice Plugin caricati: rhnplugin Questo sistema sta ricevendo aggiornamenti da RHN Classic o RHN Satellite. Configurazione del processo di installazione Nessun pacchetto r-cran-rjava disponibile.
BigDataScientist

1
@DirkEddelbuettel, mentre l'approccio "dovrebbe funzionare" mi sembra fantastico, il fatto che solo così tanti pacchetti siano elencati in r-cran-x è il motivo per cui le persone usano il modo "normale" R (install.packages). Inoltre, ho appena seguito il tuo consiglio su come farlo tramite cran, il che non aiuta in quanto R 3.x è mainstream ora, mentre i pacchetti in r-cran- sono apparentemente prima di R 3.x
Richard

77

Si scopre che il mio problema era un problema con la mia JAVA_HOMEvariabile d'ambiente. Sì, scioccante lo so. La mia impostazione iniziale per PATHe JAVA_HOMEsembrava così:

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

E ho aggiunto in /jremodo che ora assomigli a questo:

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

Tutto in Java sembrava funzionare bene senza il /jrema rJava no. Dispari.


5
Mantenendo il vero significato di "overflow dello stack" creando una domanda -> answer loop infinito --- mi piace.
DrewConway

10
Grazie. Sto facendo la mia parte per assicurarmi che i futuri utenti di Google possano trovare le risposte alle loro domande R!
JD Long,

11
Dopo aver modificato JAVA_HOME e il percorso dell'eseguibile java, ho scoperto di dover eseguire R CMD javareconf. Altrimenti, il processo di installazione di rJava vede ancora le vecchie posizioni di intestazioni, librerie, ecc.
Carlos Macasaet

1
Niente ha funzionato per me. Sto provando ad installare "rJava" nel server Red Hat Linux dove sto servendo alcune applicazioni R Shiny. Ricevo il seguente ERRORE: configurazione non riuscita per il pacchetto "rJava" * rimozione "/ usr / lib64 / R / library / rJava". Ho eseguito i seguenti passaggi nel processo di eliminazione dell'errore. 1. Java aggiornato in Linux sudo yum install java-1.7.0-openjdk 2. Imposta l'esportazione di HOME e PATH 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. Java riconfigurato sudo / usr / bin / R CMD javareconf
BigDataScientist

Sì, funziona, invece ho usato la 8-oracleversione.
Gunzapper

21

Grazie - il tuo suggerimento $JAVA_HOMEmi ha portato a una soluzione simile:

prompt$ unset JAVA_HOME

prima di invocare R.


1
non impostato JAVA_HOME (nessun segno di dollaro)
Vladtn

1
Sì, questo ha risolto il mio problema. Puoi spiegare perché? Grazie
MichaelZ

annullare l'impostazione JAVA_HOME e impostare CLASSPATH = $ CLASSPATH: / usr / lib64 / R / share / java
42n4


14

Ecco come lo faccio funzionare:

In 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
grazie ... avevo bisogno di installare qualcosa chiamato rcdk in R che è caduto perché java non funzionava. Il tuo lavoro ha risolto il problema (Ubuntu 18.04)
user1945827

Davvero felice di aiutarti!
Jim Chen

11

Questo ha funzionato per me su Ubuntu 12.04 e R versione 3.0

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

questa è la directory che ha jni.h

Quindi crea un collegamento software a un altro file di intestazione richiesto (sono troppo pigro per scoprire come includere più di una directory nell'opzione JAVA_CPPFLAGS di seguito):

sudo ln -s linux/jni_md.h .

Finalmente

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/includeha risolto il problema per me.
Moustafa Alzantot

... e aggiungerei echo $JAVA_HOMEnel caso in cui java-6-sunnon sia la tua directory esatta.
isomorfismi

7

sotto c'è una delle mie risposte su un altro post - errore: impossibile caricare i pacchetti installati in questo momento
questo (anche questo è rilevante per questa domanda)

Per utenti Linux (Ubuntu): se hai installato oracle-java (7/8) . Sarà in questa posizione /usr/lib/jvmesudo è necessario l'accesso.

Crea il file /etc/ld.so.conf.d/java.confcon le seguenti voci:

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

(Sostituisci java-8-oracle con java-7-oracle a seconda della tua versione di java)

Poi:

sudo ldconfig

Riavvia RStudio e quindi installa il pacchetto rJava.


1
Ho provato più soluzioni con diversi gradi di successo, ma questa è la prima soluzione che ho trovato che sembra essere resiliente (cioè non richiede che gli stessi 5 passaggi vengano ripetuti ogni volta che avvio R).
SamWN

4

Esecuzione di R sotto Gentoo su un AMD64. Ho aggiornato a R 2.12.0

R versione 2.12.0 (2010-10-15) Copyright (C) 2010 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Piattaforma: x86_64-pc-linux-gnu (64-bit) e quei fastidiosi messaggi sono andati lontano.

Jan Vandermeer


2

Ho provato a installare openjdk-7- * ma ho ancora avuto problemi con l'installazione di rJava. Dopo aver riavviato il computer, risulta che non ci sono stati problemi.

così

sudo apt-get install openjdk-7-*


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

2

Il pacchetto rJava cerca la /usr/lib/jvm/default-java/cartella. Ma non è disponibile come impostazione predefinita. Questa cartella ha un collegamento simbolico per il java predefinito configurato per il sistema.

Per attivare il java predefinito installare i seguenti pacchetti:

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

Testato su ubuntu 17.04 con CRAN R 3.4.1


2

Quello che ha funzionato per me è stato cambiare JAVA_HOME da file /usr/lib/R/etc/javaconf

Per prima cosa ho verificato qual era la mia versione di Java abilitata: sudo update-alternatives --config java . Nel mio caso, lo erajava-8-oracle

Ho aperto il file /usr/lib/R/etc/javaconfe sostituito default-javada java-8-oracle:

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

sostituito da :

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

E poi sudo R CMD javareconf

Ho riavviato RStudio e ho potuto installare rJava.


1

quello che faccio è qui:

  1. in /etc/apt/sources.list, aggiungi:

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

Nota: la rjava dovrebbe essere l'ultima versione

2 eseguire: sudo apt-get update sudo apt-get install r-cran-rjava

Una volta aggiornata la vecchia versione di rjava, è possibile installare rhdfs_1.0.8.



1

Ho riscontrato lo stesso problema durante l'utilizzo di Windows 10. Ho risolto il problema utilizzando la seguente procedura

  1. Scarica Java da https://java.com/en/download/windows-64bit.jsp per Windows a 64 bit \ Installalo
  2. Scarica il kit di sviluppo Java da https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html per Windows a 64 bit \ Installalo
  3. Quindi fare clic con il pulsante destro del mouse sull'icona "Questo PC" in desktop \ Proprietà \ Impostazioni di sistema avanzate \ Avanzate \ Variabili di ambiente \ In Variabili di sistema selezionare Percorso \ Fare clic su Modifica \ Fare clic su Nuovo \ Copia e incolla i percorsi "C: \ Programmi \ Java \ jdk1 .8.0_201 \ bin "e" C: \ Program Files \ Java \ jre1.8.0_201 \ bin "(senza virgolette) \ OK \ OK \ OK

Nota : jdk1.8.0_201 e jre1.8.0_201 verranno modificati a seconda della versione del kit di sviluppo Java e di Java

  1. Nella finestra Variabili d'ambiente vai a Variabili utente per Utente \ Fai clic su Nuovo \ Inserisci nome variabile come "JAVA_HOME" e Valore variabile come "C: \ Programmi \ Java \ jdk1.8.0_201 \ bin" \ Premi OK

Per verificare l'installazione, apri CMD \ Digita javac \ Premi Invio e digita java \ premi invio Verrà visualizzato inserisci qui la descrizione dell'immagine

In RStudio esegui

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

Nota : jdk1.8.0_201 verrà modificato a seconda della versione del kit di sviluppo Java

Ora puoi installare e caricare il pacchetto rJava senza alcun problema.


0

Il problema era che rJava non si installava in RStudio( Version 1.0.136). Quanto segue ha funzionato per me ( macOS Sierra version 10.12.6) (trovato qui ):

Passaggio 1: scarica e installa javaforosx.dmgda qui

Passaggio 2: Quindi, eseguire il comando dall'interno di RStudio:

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

-2

Ho riscontrato un problema simile su Ubuntu 16.04 e sono riuscito a risolverlo creando una cartella denominata "default-java" in /usr/lib/jvme copiando in essa tutti i contenuti del file /usr/lib/jvm/java-8-oracle. Ho optato per questa soluzione in quanto la correzione della variabile d'ambiente JAVA_HOME si è rivelata inutile.


1
Ciò interromperà l' default-jreinstallazione del pacchetto.
Gustavo Garcia
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.