Ir al contenido principal

JBang - Java como Script

JBang

Java como scripting, sin configuración

¿Qué es JBang?

JBang es una herramienta revolucionaria que permite ejecutar código Java como scripts, eliminando la complejidad tradicional de configuración de proyectos. Con JBang puedes escribir y ejecutar código Java instantáneamente, similar a como lo harías con Python o JavaScript.

El problema que resuelve:

  • Elimina la necesidad de configurar proyectos complejos
  • Permite ejecutar Java con una sola línea de comando
  • Gestiona dependencias automáticamente
  • Soporta múltiples lenguajes JVM (Java, Kotlin, Groovy)

Instalación Rápida

Opción recomendada (Linux/macOS/WSL):

# Instalar JBang fácilmente
curl -Ls https://sh.jbang.dev | bash -s - app setup

Windows PowerShell:

iex "& { $(iwr -useb https://ps.jbang.dev) } app setup"

Verificar instalación:

jbang --version

Tu primer script en 30 segundos

1. Crear un script básico:

jbang init hola.java

2. Contenido generado:

///usr/bin/env jbang "$0" "$@" ; exit $?

class hola {
    public static void main(String[] args) {
        if(args.length==0) {
            System.out.println("¡Hola Mundo!");
        } else {
            System.out.println("¡Hola " + args[0] + "!");
        }
    }
}

3. Ejecutar:

# Output: ¡Hola Mundo!
jbang hola.java

# Output: ¡Hola María!
jbang hola.java María

Características Principales

1. Gestión de Dependencias

//DEPS info.picocli:picocli:4.6.3
//DEPS com.fasterxml.jackson.core:jackson-databind:2.15.2

2. Soporte Multi-lenguaje

  • Java (.java)
  • Kotlin (.kt)
  • Groovy (.groovy)
  • JShell (.jsh)

3. Plantillas Integradas

# Crear aplicación CLI
jbang init --template=cli miapp.java

# Crear servidor web
jbang init --template=qcli webserver.java

Ejemplo Real: Cliente HTTP

///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS com.fasterxml.jackson.core:jackson-databind:2.15.2

import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import com.fasterxml.jackson.databind.ObjectMapper;

class httpClient {
    public static void main(String[] args) throws Exception {
        String url = "https://api.github.com/users/jbangdev";
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .build();
        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());
        System.out.println("Status: " + response.statusCode());
        System.out.println("Body: " + response.body());
    }
}

Ejecutar:

jbang httpClient.java

💡 Consejo Práctico

Puedes ejecutar scripts directamente desde GitHub sin descargarlos localmente:

jbang https://github.com/usuario/repo/blob/main/script.java

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar Evolution API en Docker con Redis y PostgreSQL Local

Instalar Evolution API en Docker con Redis y PostgreSQL Local En este tutorial vamos a levantar Evolution API usando Docker , con soporte de Redis para sesiones y PostgreSQL local para almacenar datos de manera persistente y compartida entre varios usuarios. 1. Estructura del proyecto Crea una carpeta para tu proyecto y colócate en ella: mkdir -p ~/docker/evolution-api cd ~/docker/evolution-api 2. Archivo docker-compose.yml Este compose levanta Redis y Evolution API : version: "3.9" services: # ✅ SERVICIO REDIS redis: container_name: evolution_redis image: redis:7-alpine restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data command: redis-server --save 60 1 --loglevel warning # ✅ SERVICIO EVOLUTION API evolution-api: container_name: evolution_api image: atendai/evolution-api restart: unless-stopped ports: - "8085:8080" env_file: - .env ...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...