JBang: Desbloquea el potencial de Java para hacer scripts
Introducción
Java es un lenguaje muy potente, pero tradicionalmente no ha sido conocido por su rapidez en la creación de scripts o prototipos. De hecho, la verbosidad y el código boilerplate de Java han sido a menudo citados como razones por las que los desarrolladores recurren a otros lenguajes para tareas de scripting o incluso el desarrollo de aplicaciones pequeñas.
JBang es una herramienta que pretende cambiar esa percepción, convirtiendo a Java en un ciudadano de primera clase en el mundo de los scripts. Es una herramienta diseñada para permitirte escribir, ejecutar y compartir scripts en Java con un mínimo de configuración.
![Una imagen con el logo de JBang](/static/2ee3e2935890e40287544fb84cff54b1/6a00c/jbang-logo.png)
En este artículo, te daré una visión general de JBang y te mostraré cómo empezar a usarlo hoy mismo.
¿Qué es JBang?
JBang es una revolucionaria herramienta de línea de comandos que transforma Java en un lenguaje de scripting, haciéndolo tan accesible como Python o el scripting de Shell. Permite a los desarrolladores crear, editar y ejecutar programas Java autocontenidos con una configuración mínima, sin necesidad de una configuración de proyecto completa o engorrosos archivos de compilación. Mediante la eliminación de la necesidad de herramientas de compilación tradicionales como Maven o Gradle, JBang simplifica el desarrollo en Java, permitiendo la experimentación y la creación rápida de prototipos. Ya estés escribiendo un script rápido o prototipando una idea, JBang te permite trabajar con la sintaxis Java estándar mientras gestiona automáticamente las dependencias e incluso las versiones del JDK cuando sea necesario.
Con JBang puedes:
- Ejecutar código Java directamente desde archivos
.java
o incluso desde URLs. - Gestionar dependencias en línea mediante sencillas anotaciones o directivas de comentarios.
- Depurar y editar scripts de forma sencilla en IDEs populares como IntelliJ IDEA.
Su lema, "Desata el poder de Java", encapsula perfectamente su misión de hacer que Java sea más accesible para la creación de scripts y tareas sencillas.
¿Por qué usar JBang?
Durante años, los desarrolladores de Java han luchado con la falta de una solución de scripting sencilla. Aunque existen herramientas como JShell, no abordan por completo la necesidad de gestión de dependencias o portabilidad de scripts.
JBang llena este vacío con características como:
- Facilidad de uso: Puedes escribir un archivo
.java
independiente con un método principal (o incluso usar scripts al estilo de JShell) y ejecutarlo inmediatamente. - Gestión de dependencias: JBang resuelve automáticamente las dependencias de Maven Central u otros repositorios, lo que facilita la inclusión de bibliotecas en tus scripts.
Puedes añadir dependencias directamente en tu código fuente con comentarios especiales (por ejemplo,
//DEPS ...
), y JBang se encarga del resto. - Portabilidad: Funciona en Windows, macOS y Linux. Es fiel al lema "Escribe una vez, ejecuta en cualquier lugar".
- Arranque del JDK: ¿No tienes Java instalado? ¡No hay problema! JBang puede descargar e instalar el JDK necesario por ti.
- Integración con herramientas modernas: JBang es compatible con frameworks y librerías populares como Quarkus, Spring y Micronaut. Incluso puedes ejecutar scripts de JBang en GitHub Actions o en pipelines de CI/CD de GitLab.
¿Cómo empezar con JBang?
Para empezar con JBang, necesitas instalar la herramienta en tu sistema.
Instalación
La instalación de JBang es sencilla, puedes usar un solo comando para ello:
- Linux/macOS/AIX/WSL bash:
curl -Ls https://sh.jbang.dev | bash -s - app setup
- Windows PowerShell:
iex "& { $(iwr -useb https://ps.jbang.dev) } app setup
- SDKMan:
sdk install jbang
Importante
Considera verificar la fuente y el checksum del script antes de ejecutarlo para seguir las mejores prácticas de seguridad.
Como alternativa, puedes descargar los binarios de JBang para tu sistema directamente desde la página web. JBang también admite la instalación a través de gestores de paquetes como Homebrew en macOS o Chocolatey en Windows.
Transcurrida la instalación, puedes ejecutar jbang --version
para verificar que JBang se ha instalado correctamente.
Escribir tu primer script
Vamos a crear un sencillo script de "Hello, World!" usando JBang.
1. Inicializar el script
JBang proporciona una forma sencilla de crear un nuevo script ejecutando el siguiente comando:
jbang init HelloWorld.java
Esto crea un archivo llamado HelloWorld.java
con una plantilla básica para un script de JBang.
El siguiente fragmento de código contiene su contenido:
///usr/bin/env jbang "$0" "$@" ; exit $?
import static java.lang.System.*;
public class HelloWorld {
public static void main(String... args) {
out.println("Hello World");
}
}
2. Ejecutar el script
Para ejecutar el script, ejecuta el siguiente comando:
jbang HelloWorld.java
Deberías ver la salida Hello World
en tu terminal.
Comentarios o directivas de JBang
Los scripts de JBang pueden incluir comentarios o directivas especiales que proporcionan información adicional al tiempo de ejecución de JBang.
Si examinamos el script HelloWorld.java
, vemos el siguiente comentario al principio:
///usr/bin/env jbang "$0" "$@" ; exit $?
Este es un shebang común que indica al sistema que ejecute el script con JBang.
Si tu sistema es compatible con shebangs, puedes ejecutar el script directamente desde la línea de comandos sin especificar jbang
explícitamente.
Hay muchas otras directivas que puedes usar en los scripts de JBang, como:
Directiva | Descripción |
---|---|
//DEPS | Añade dependencias a tu script.//DEPS org.apache.commons:commons-lang3:3.12.0 |
//SOURCES | Incluye archivos fuente adicionales.//SOURCES src/main/java/MyUtils.java |
//FILES | Incluye archivos adicionales.//FILES src/main/resources/config.properties |
//JAVA | Especifica la versión de Java a utilizar.//JAVA 11 |
//COMPILE_OPTIONS | Establece opciones de compilación.//COMPILE_OPTIONS --enable-preview |
Estas son algunas de las directivas más comunes en los scripts de JBang. No obstante, hay muchas más disponibles, y puedes encontrar la lista completa en la documentación de JBang.
Conclusión
JBang cierra la brecha entre el desarrollo Java tradicional y el scripting rápido comunmente visto en lenguajes como Python o Bash. Ya estés automatizando tareas, experimentando con nuevas librerías o enseñando Java a principiantes, JBang elimina las barreras tradicionales asociadas con el desarrollo Java.
¡Pruébalo y expermienta tú mismo cómo JBang puede agilizar tu flujo de trabajo de desarrollo Java!