Instalación y configuración correctas de openJDK y R

Soy relativamente nuevo en Ubuntu, así que no conozco muchos comandos que probablemente se convirtieron en algo estándar para muchos de ustedes. Estoy tratando de configurar R y con ello las dependencias necesarias de Java para instalar, por ejemplo, JGR, rjava, etc. Leí unas cuantas instrucciones para hacer eso, pero de alguna manera debo haber hecho algo mal. Aquí está el estado de R y 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 : 

Pero cuando bash instalar ‘JavaGD’ en R, que es una dependencia para JGR, obtengo:

 ... 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. ... 

Cualquier ayuda sería muy apreciada. ¡Gracias!

No estoy familiarizado con R, pero según su consola parece que R requiere un JDK mientras que usted tiene un JRE como su variable de inicio de JAVA por defecto. Le sugiero que se asegure de tener instalado o instalado el JDK ( sudo apt-get install openjdk-6-jdk ).
También asegúrese de que su variable de entorno JAVA_HOME apunta al JDK y no al JRE (puede ver en su salida que actualmente la ruta de inicio de java está establecida en /usr/lib/jvm/java-6-openjdk/jre .

Uno no debería instalar a ciegas openjdk-6-jdk . Lo que me ayudó, fue cambiar la versión de Java. Afortunadamente, hay una buena herramienta de Ubuntu para hacer eso:

 sudo update-alternatives --config java 

Allí puede ver qué Javas ya están disponibles en el sistema y configurar el deseado. Y luego instale ya sea openjdk-7-jdk o openjdk-6-jdk (o ambos)

y solo entonces corre

 sudo R CMD javareconf 

Más detalles sobre las opciones de Java están en la Comunidad Wiki de Ubuntu

PS Para las personas que vienen de Google: entre otras cosas, esta publicación ayuda a resolver problemas con rj instalation en R, con un mensaje de error: R is not configured with full Java support. Please make sure an JDK is installed and run R CMD javareconf R is not configured with full Java support. Please make sure an JDK is installed and run R CMD javareconf . Cuando hice eso, dijo: NOTE: Your JVM has a bogus java.library.path system property! . Por lo tanto: no es necesario jugar con las rutas de biblioteca de Java! .

R CMD javareconf como root

significa, tienes que usar sudo, para emitir tu comando:

 sudo R CMD javareconf 

Se le pedirá su contraseña (su contraseña de usuario normal).

La respuesta de Yossiles me ayudó en el camino, pero aquí está la versión para principiantes, que también se basa en la respuesta a esta pregunta .

Lo que funcionó para mí fue esto:

1) Abra / etc / environment en su txteditor favorito:

 sudo gedit /etc/environment 

2) agregue una nueva línea con “JAVA_HOME” y la ruta para corregir el directorio jr, en el caso de Java 8, es:

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

3) fuente el entorno actualizado y compruebe la variable:

 source /etc/environment echo $JAVA_HOME 

4) actualizar la configuración de java-R de esta manera:

 sudo R CMD javareconf 

5) instale RJava, XLConnect o cualquier paquete R dependiente de Java que esté buscando.

Sí, las alternativas de actualización son el mecanismo de enlace más conveniente para mantener diferentes versiones de JVM, incluso de diferentes proveedores como Oracle / OpenJDK. Estoy abierto a la corrección, pero diría que se necesita un JDK y no solo un JVM para la configuración de R.

El esquema a preparar para la configuración de R JAVA son:

  1. asegúrese de que la JVM requerida esté ubicada correctamente en /usr/lib/jvm
  2. configure el enlace usando update-alternatives --install para cada comando JAVA requerido por R
  3. use update-alternatives --configure para seleccionar una JVM predeterminada
  4. actualizar la configuración de R

Para asegurarse de que el JDK ya esté en la ubicación correcta, consulte la lista de JVM instaladas con el comando

 ls /usr/lib/jvm 

Si la carpeta no incluye un JDK, entonces reubique la carpeta JVM completa desde el archivo tar.gz extraído (descarga) a /usr/lib/jvm con el comando:

 sudo mv  /usr/lib/jvm 

R requiere las entradas de terminal separadas para las alternativas de actualización para los siguientes comandos JAVA:

  • intérprete: ‘/ usr / bin / java’
  • archivador: ‘/ usr / bin / jar’
  • comstackdor: ‘/ usr / bin / javac’
  • encabezado prep .: ‘/ usr / bin / javah’

Las entradas para jdk1.8.0_51 son las siguientes:

 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 

NÓTESE BIEN. la salida después de la ejecución de update-alternatives --install para JVM jdk1.8.0_51 debería ser una salida similar a:

actualización-alternativas: usar /usr/lib/jvm/jdk1.8.0_51/bin/java para proporcionar / usr / bin / java (java) en modo automático

para seleccionar la JVM requerida como predeterminada

 sudo update-alternatives --config java 

Si solo se configura una JVM, la siguiente salida se presenta en el terminal

Solo hay una alternativa en el grupo de enlaces java (que proporciona / usr / bin / java): /usr/lib/jvm/jdk1.8.0_51/bin/java No hay nada que configurar.

alternativamente, debe seleccionarse la entrada relevante # para la JVM requerida

para comprobar que la JVM correcta está vinculada

 java --version 

Finalmente, actualice la configuración de R con:

 sudo R CMD javareconf 

Tenga en cuenta que esta configuración podría parecer que no funciona si ha intentado otras formas de “cablear” la configuración de su JVM