Traducción : English- español~


Si tienes alguna pregunta sobre el empaquetamiento de Software Java para Debian, mira en es/Java/Packaging and the es/JavaPackagingFAQ.

¿Cómo comenzar con la ejecución y compilación de programas Java en Debian rápidamente?

Para ejecutar software java probablemente necesites un paquete jre tal como el openjdk-6-jre. Para compilar java necesitas un paquete jdk tal como el openjdk-6-jdk. Si no te importa que versión de java se usa, entonces default-jre y default-jdk son paquetes que existen en todas las plataformas y te proporcionan algo sensato.

sudo apt-get install openjdk-6-jdk

Llegas a java por /usr/bin/java . Este fichero es realmente un enlace a /etc/alternatives/java , lo cual es en cambio otro enlace a tu carpeta de instalación javar la cual esta ubicada en /usr/lib/jvm . Por ejemplo, java puede enlacar via /etc/alternatives/java a /usr/lib/jvm/java-6-openjdk/jre/bin/java .

Si tienes preguntas más detalladas, puede que te interese mirar http://www.debian.org/doc/manuals/debian-java-faq/.

Una razón particular que puede dirigirte a leer esos consejos de arriba, es en caso de que ant termine para ti con el error:

BUILD FAILED

(path)/build.xml:49: Unable to find a javac compiler;

com.sun.tools.javac.Main is not on the classpath.

Perhaps JAVA_HOME does not point to the JDK

== Acerca de pbuilder y Java SDK de SUN/ORACLE==

Pregunta

Estoy construyendo con dependencias de sun-javaX-jdk. Sin embargo, no puedo conseguir una construcción automática en un entorno limpio, porque el sun-javaX-jdk no se instala en un entorno no interactivo, debido a que pide confirmación de licencia:

 Unpacking sun-java6-jdk (from .../sun-java6-jdk_6-06-1_amd64.deb) ...
 sun-dlj-v1-1 license could not be presented
 try 'dpkg-reconfigure debconf' to select a frontend other than noninteractive

Respuesta

Hay dos posibles respuestas:

Parchear de una vez por todas tu entorno pbuilder

 $ sudo pbuilder login --save-after-login
 # echo "sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
 # echo "sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true" | debconf-set-selections
 # exit

Añadir al vuelo un gancho al parche

En http://lists.debian.org/debian-java/2008/05/msg00024.html Manuel Prinz dice:

  • Yo uso un modo para hacerlo "al vuelo" ya que creo que es mas fácil gestionar si tienes varias configuraciones debconf para manejar. Sólo añade a tu .pbuilderrc:
     HOOKDIR=$HOME/debian/pbuilder/hooks
    Entnoces crea un fichero llamado p. ej. "D50sun-java-licenses" en $HOOKDIR con el siguiente contenido (eso basicamente tiene que empezar con "D" y un numero de dos digitos para ordenar):
     #!/bin/sh
     debconf-set-selections <<EOF
     sun-java5-jdk shared/accepted-sun-dlj-v1-1 boolean true
     sun-java6-jdk shared/accepted-sun-dlj-v1-1 boolean true
     EOF
    Esto acepta las licencias antes de que los paquetes se instalen. Yo lo prefiero así porque puedo desactivar ciertas configuraciones fácilmente (mediante el descomentado de secciones o renombrando los ficheros gancho) y no tengo que mantener un chroot completo para cada posible configuración debconf. También, me suelo olvidar de cuál configuración exactamente hice en que chroot.

Como se menciona en man pbuilder, necesitas hacer ejecutable el script de gancho (D50sun-java-licenses) antes de que pbuilder lo cargue.


CategoryJava