2010-07-22 29 views
83

Al instalar rJava usando el comando install.packages("rJava") me sale el siguiente error:R: paquete rJava instalar en su defecto

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’ 

He instalado el JDK de Java y java -version devuelve lo siguiente:

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

Al buscar en Google alrededor del error veo que otros están teniendo el mismo problema pero no encuentran una solución que no sea "instalar todo el JDK, no solo el JRE" que he hecho.

La otra cosa que leí fue ejecutar sudo R CMD javareconf, que funciona bastante feliz sin errores.

¿Alguna idea de cuál es mi problema?

[[EDITAR]] Han pasado unos meses desde que tuve este problema. Inicialmente resolví esto editando mis rutas de Java, como se ilustra en la respuesta que publiqué a continuación. Recientemente me encontré con el mismo problema en una nueva instalación de Ubuntu. Probé la recomendación de Dirk para usar apt-get para instalar el paquete rJava. Funcionó perfectamente. Lo que no pude apreciar inicialmente es que instalar paquetes usando el método Ubuntu apt-get es fundamentalmente diferente a simplemente cargar el mismo paquete usando install.packages() dentro de R. Los paquetes de Ubuntu resuelven algunos problemas que no me di cuenta ni aprecié .

+0

La respuesta se puede encontrar aquí también -http: //stackoverflow.com/questions/12872699/error-unable-to-load-installed-packages-just-now/25932828#25932828 –

+1

Simplemente haciendo un comentario aquí para mi futuro self (porque cuando indudablemente vuelvo a esta pregunta) que necesitaba ejecutar sudo CMD javareconf para que la instalación de apt-get fuera reconocida como mi servidor rstudio. –

Respuesta

65

Resulta que mi problema era un problema con mi variable de entorno JAVA_HOME. Sí, impactante, lo sé. Mi ajuste inicial para PATH y JAVA_HOME veía así:

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

Y añadió /jre por lo que ahora se ve así:

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

Todo en Java parecía funcionar bien sin la /jre pero rJava no lo haría . Impar.

+4

Manteniendo el verdadero significado de "desbordamiento de pila" creando una pregunta -> respuesta bucle infinito --- me gusta. – DrewConway

+9

Gracias. ¡Haciendo mi mayor esfuerzo para asegurarme de que los futuros usuarios de Google puedan encontrar respuestas a sus preguntas sobre R! –

+0

La solución de 3.5 años me salvó la piel, gracias. –

91

No sería

apt-get install r-cran-rjava 

han sido más fácil? Podrías haberme preguntado en useR! :)

+3

El punto de Ubuntu y Debian es que no deberías tener que google en primer lugar --- debería "funcionar" usando los paquetes adecuados. Haga su vida más fácil y use paquetes donde pueda. Supongo que también usaste los paquetes Java de Ubuntu. –

+11

Dirk, haga estas preguntas como si tuviera alguna idea de qué demonios hice. Si no recuerdo mal, tuve problemas para instalar Java usando apt-get, así que construí desde el origen y esa es probablemente la fuente (todos los juegos de palabras) de mis problemas. Por supuesto, podría ser solo un mal karma. –

+0

@DirkEddelbuettel: ¿Puede decirme cómo resolver este problema en OpenSUSE? No estoy familiarizado con OpenSUSE ni con R. – Bhushan

4

Ejecutando R bajo Gentoo en un AMD64. He actualizado a 2.12.0 R

versión 2.12.0 R (2010-10-15) Copyright (C) 2010 La Fundación de R estadística ISBN 3-900051-07-0 Plataforma: PC-x86_64 -linux-gnu (64-bit) y esos molestos mensajes desaparecieron.

Ene Vandermeer

16

Gracias - su sugerencia acerca $JAVA_HOME me llevan a una solución similar:

prompt$ unset JAVA_HOME 

antes de invocar R.

+1

unset JAVA_HOME (sin signo de dólar) – Vladtn

+1

Esto funcionó bajo Arch Linux – sieste

+1

Sí, esto solucionó mi problema. ¿Puedes explicar por qué? Gracias – MichaelZ

10

Esto funcionó para mí en Ubuntu 12.04 y la versión R3.0

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

este es el directorio que tiene jni.h

A continuación, cree un enlace simbólico a otro archivo de cabecera requerida (soy demasiado perezoso para averiguar cómo incluir más de un directorio en los JAVA_CPPFLAGS opción a continuación):

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/include' resuelto el problema para mí –

+0

... y agregaría 'echo $ JAVA_HOME' en caso de que' java-6-sun' no sea su directorio exacto. – isomorphismes

+0

Esto funcionó para mí Ubuntu 16.04 – remo

1

lo que hago está aquí:

  1. en /etc/apt/sources.list, añadir:

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

Nota: el rjava debe ser versión más reciente

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

Una vez que actualice la versión anterior de rjava, puede instalar rhdfs_1.0.8.

2

Intenté instalar openjdk-7- * pero aun así tuve problemas para instalar rJava. Resulta que después de reiniciar mi computadora, entonces no hubo ningún problema.

por lo

sudo apt-get install openjdk-7-* 


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

abajo es uno de mis respuestas en otro post - error: unable to load installed packages just now
(esto también es relevante para esta pregunta)

Para usuarios de Linux (Ubuntu): Si tienes oracle-java (7/8) instalado. Será en esta ubicación /usr/lib/jvm y sudo se requiere acceso.

Cree el archivo /etc/ld.so.conf.d/java.conf con las siguientes entradas:

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

(Reemplazar java-8-Oracle con Java-7-oráculo según la versión de java)

continuación:

sudo ldconfig 

Reinicie RStudio y luego instale el paquete rJava.

+1

¡Trabajó para mí, gracias! –

-2

He encontrado un problema similar en Ubuntu 16.04 y pude resolverlo creando una carpeta llamada "default-java" en /usr/lib/jvm y copiando en ella todos los contenidos del /usr/lib/jvm/java-8-oracle. Opté por esta solución ya que la corrección de la variable de entorno JAVA_HOME resultó ser inútil.

+1

Esto romperá la instalación del paquete 'default-jre'. –

1

El paquete rJava busca la carpeta /usr/lib/jvm/default-java/. Pero no está disponible por defecto. Esta carpeta tiene un enlace simbólico para el java predeterminado configurado para el sistema.

Para activar la instalación por defecto de Java los siguientes paquetes:

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

probado en Ubuntu 17.04 con CRAN R 3.4.1

0

Lo que funcionó para mí estaba cambiando JAVA_HOME de archivo /usr/lib/R/etc/javaconf

Primero revisé cuál era mi versión de Java habilitada: sudo update-alternatives --config java. En mi caso, fue java-8-oracle

Abrí el archivo /usr/lib/R/etc/javaconf y sustituye default-java por java-8-oracle:

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

sustituye por:

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

Y luego sudo R CMD javareconf

Recomencé rstudio , y luego podría instalar rJava.

Cuestiones relacionadas