Ejemplo Hello World con Java en la Raspberry Pi
Escrito por
el , actualizado el .
gnu-linux
java
planeta-codigo
programacion
Enlace permanente
Comentarios
Este artículo es introductorio a los siguientes que escribiré y publicaré sobre el kit de iniciación a la electrónica para la Raspberry Pi. Antes de empezar a cacharrear con los sensores y dispositivos de entrada y salida, con los pines GPIO y para hacerlo de forma cómoda crearé un entorno de desarrollo y despliegue en la Raspberry Pi usando SSH, rsync para copiar los artefactos del equipo de desarrollo a la RPi y Ansible usándolo desde Gradle para lanzar comandos y ejecutar los ejemplos de forma remota aunque si no se quiere usar Ansible se pueden lanzar los comandos mediante SSH.
En la Raspberry Pi deberemos instalar por supuesto Java (es posible usar Java 8) junto con SSH y rsync, configurar el servidor SSH en la RPi modificando el archivo /etc/ssh/sshd_config, habilitar el servidor SSH, copiar nuestra clave pública ssh generada previamente al archivo ~/.ssh/authorized_keys del usuario e instalar Python como requerimiento de Ansible. Los programas Java los escribiremos en un equipo más potente que la Raspberry Pi ya sea un portátil o un equipo de sobremesa con un IDE ya sea IntelliJ, eclipse u otro, también deberemos instalar Gradle, Ansible y rsync. En Arch Linux con los siguientes comandos del gestor de paquetes:
|
|
|
|
|
|
Con la ayuda de unas tareas para la herramienta de construcción Gradle haremos el despliegue y la ejecución de la librería jar del proyecto de los ejemplos y de las dependencias que necesiten. El archivo de construcción de Gradle sería el siguiente en el que la tarea copyDependencies copia las dependencias al directorio build/libs. La tarea upload ejecutan el comando rsync
para subir el archivo jar y las dependencias del proyecto a la Raspberry Pi. Finalmente, una tarea como executeHelloWorld ejecutará el comando en la Raspberry Pi para lanzar el programa Java. Con SSH también se puede lanzar el comando de forma remota cambiando la dirección IP de la Raspberry Pi por la que tenga asignada.
|
|
|
|
|
|
El programa de ejemplo es universal gracias a la idea «Write once, run anywhere» posibilitado por la máquina virtual o JVM y el bytecode, está compilado en un sistema con arquitectura x64 (el de mi equipo) y ejecutado en un sistema con arquitectura arm (el de la RPi). No se diferencia en nada al que usaríamos para lo mismo en cualquier otro sistema distinto de la Raspberry Pi.
|
|
El resultado de este ejemplo es un mensaje en la terminal que es emitido por un programa Java ejecutado en la Raspberry Pi y lanzado de forma remota.
En los siguientes artículos de la serie mostraré ya como usar diferentes elementos de salida como diodos LED, zumbador, display LCD 1602 o de entrada como un pulsador.
El código fuente completo del ejemplo puedes descargarlo del repositorio de ejemplos de Blog Bitix alojado en GitHub y probarlo en tu equipo ejecutando siguiente comando:./gradlew executeHelloWorld