Passer au contenu principal

JBang 25.11

Ouvrir dans ChatGPT

JBang est un outil qui permet d’exécuter du code Java sous forme de scripts, sans fichiers de build, configuration de projet ni compilation manuelle. L’intégration JBang de webforJ vous permet de créer rapidement des applications webforJ, particulièrement adaptées au prototypage rapide, à l’apprentissage et aux démonstrations, sans avoir besoin des dépendances et de l’infrastructure traditionnelles d’un programme Java complet.

Pourquoi utiliser JBang avec webforJ​

Les projets webforJ traditionnels utilisent Maven ou Gradle, avec plusieurs fichiers de configuration et une structure de projet standard. Cette configuration est la norme pour les applications de production, mais peut sembler lourde pour de simples expérimentations ou démonstrations.

Avec JBang, vous pouvez :

  • Démarrer instantanément : écrire un seul fichier .java et l’exécuter immédiatement
  • Éviter la configuration du projet : pas de pom.xml, pas de build.gradle, pas de structure de répertoires
  • Partager facilement : envoyer à quelqu’un un seul fichier qu’il pourra exécuter avec une seule commande
  • Apprendre plus rapidement : vous concentrer sur les concepts webforJ sans la complexité des outils de build

L’intégration inclut l’arrêt automatique du serveur lorsque vous fermez l’onglet du navigateur, pour simplifier votre flux de développement.

Prérequis​

Installer JBang​

Choisissez votre méthode d’installation préférée :

# Universal (Linux/macOS/Windows with bash)
curl -Ls https://sh.jbang.dev | bash -s - app setup

# SDKMan
sdk install jbang

# Homebrew (macOS)
brew install jbangdev/tap/jbang

# Chocolatey (Windows)
choco install jbang

# Scoop (Windows)
scoop install jbang

Vérifiez l’installation :

jbang --version
Version Java par défaut

Lorsque vous exécutez JBang pour la première fois sans JDK installé, JBang en télécharge automatiquement un. Vous pouvez définir la version du JDK et son fournisseur avant d’exécuter JBang :

export JBANG_DEFAULT_JAVA_VERSION=21
export JBANG_JDK_VENDOR=temurin
En savoir plus sur JBang

Pour obtenir une documentation complète sur JBang, consultez :

Créer un script webforJ​

Créez un fichier nommé HelloWorld.java avec le contenu suivant :

HelloWorld.java
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS com.webforj:webforj-jbang-starter:25.11
//JAVA 21

package bang;

import com.webforj.App;
import com.webforj.annotation.Routify;
import com.webforj.component.Composite;
import com.webforj.component.Theme;
import com.webforj.component.button.Button;
import com.webforj.component.button.ButtonTheme;
import com.webforj.component.field.TextField;
import com.webforj.component.icons.FeatherIcon;
import com.webforj.component.layout.flexlayout.FlexDirection;
import com.webforj.component.layout.flexlayout.FlexLayout;
import com.webforj.component.toast.Toast;
import com.webforj.router.annotation.Route;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@Routify
public class HelloWorld extends App {
public static void main(String[] args) {
SpringApplication.run(HelloWorld.class, args);
}
}

@Route("/")
class MainView extends Composite<FlexLayout> {

private final FlexLayout self = getBoundComponent();
private TextField hello = new TextField("What is your name?");
private Button btn = new Button("Say Hello");

public MainView() {
self.setDirection(FlexDirection.COLUMN);
self.setMaxWidth(300);
self.setStyle("margin", "1em auto");

btn.setPrefixComponent(FeatherIcon.BELL.create())
.setTheme(ButtonTheme.PRIMARY)
.addClickListener(e -> Toast.show("Welcome to webforJ JBang Starter " + hello.getValue() + "!", Theme.GRAY));

self.add(hello, btn);
}
}

Comprendre la structure du script​

LigneRôle
///usr/bin/env jbang "$0" "$@" ; exit $?Ligne shebang qui permet d’exécuter directement le script sur les systèmes Unix
//JAVA 21Indique la version minimale de Java requise ; JBang la télécharge automatiquement si nécessaire
//DEPS com.webforj:webforj-jbang-starter:25.11Déclare le starter JBang de webforJ comme dépendance à l’aide des coordonnées Maven
@SpringBootApplicationActive l’auto-configuration de Spring Boot
extends AppFait de cette classe une application webforJ

La dépendance webforj-jbang-starter inclut tout le nécessaire pour exécuter une application webforJ : le starter Spring Boot, les outils de développement et l’ouverture automatique du navigateur.

Version

Remplacez 25.11 par la dernière version de webforJ. Consultez Maven Central pour connaître la version la plus récente.

Ajouter des dépendances​

Vous pouvez ajouter d’autres dépendances Maven à l’aide de plusieurs lignes //DEPS :

///usr/bin/env jbang "$0" "$@" ; exit $?
//JAVA 21
//DEPS com.webforj:webforj-jbang-starter:25.11
//DEPS com.google.code.gson:gson:2.11.0
//DEPS org.apache.commons:commons-lang3:3.14.0

Les dépendances utilisent les coordonnées Maven standard (groupId:artifactId:version). Lors de la première exécution, JBang les récupère automatiquement depuis Maven Central.

Exécuter votre script​

Exécutez le script avec JBang :

jbang HelloWorld.java

JBang va :

  1. Télécharger les dépendances (uniquement lors de la première exécution)
  2. Compiler le script
  3. Démarrer le serveur intégré sur un port disponible aléatoire
  4. Ouvrir l’application dans votre navigateur par défaut

Rendre le script exécutable​

Sur les systèmes Unix, vous pouvez rendre le script directement exécutable :

chmod +x HelloWorld.java
./HelloWorld.java

Cela fonctionne grâce à la ligne shebang au début du fichier.

Prise en charge des IDE​

JBang s’intègre aux IDE Java populaires, notamment VS Code, IntelliJ IDEA, Eclipse et d’autres. Ces intégrations proposent des fonctionnalités telles que la saisie semi-automatique des directives, la résolution automatique des dépendances et la possibilité d’exécuter et de déboguer des scripts directement depuis l’IDE.

Consultez la documentation sur l’intégration de JBang aux IDE pour obtenir les instructions de configuration et la liste des éditeurs pris en charge.

Configuration​

Le starter JBang de webforJ inclut des paramètres par défaut adaptés à l’écriture de scripts. Vous pouvez personnaliser son comportement à l’aide des propriétés système.

Arrêt automatique​

Par défaut, le serveur s’arrête automatiquement lorsque tous les onglets du navigateur connectés à l’application sont fermés. Cela simplifie votre flux de développement en évitant de laisser des serveurs orphelins en cours d’exécution.

PropriétéValeur par défautDescription
webforj.jbang.auto-shutdowntrueActiver ou désactiver l’arrêt automatique
webforj.jbang.idle-timeout5Nombre de secondes à attendre après la déconnexion du dernier navigateur avant l’arrêt

Pour désactiver l’arrêt automatique :

jbang -Dwebforj.jbang.auto-shutdown=false HelloWorld.java

Pour modifier le délai d’inactivité :

jbang -Dwebforj.jbang.idle-timeout=30 HelloWorld.java

Paramètres par défaut​

Le starter JBang configure les paramètres par défaut suivants :

ParamètreValeurDescription
server.port0Attribution d’un port aléatoire pour éviter les conflits lors de l’exécution de plusieurs scripts
server.shutdownimmediateArrêt rapide pour mettre fin rapidement à l’exécution du script
spring.main.banner-modeoffMasque la bannière Spring Boot pour une sortie plus claire
logging.level.rootERRORJournalisation minimale pour garder la console dégagée
logging.level.com.webforjWARNAffiche uniquement les avertissements et les erreurs de webforJ
webforj.devtools.browser.opentrueOuvre automatiquement le navigateur au démarrage de l’application

Redéploiement et rechargement à chaud​

Les scripts JBang ne prennent pas en charge le rechargement à chaud. Pour voir vos modifications :

  1. Arrêtez le script en cours d’exécution (fermez l’onglet du navigateur ou appuyez sur Ctrl+C)
  2. Modifiez votre code
  3. Exécutez de nouveau jbang HelloWorld.java

Pour automatiser le redéploiement pendant le développement, envisagez d’utiliser un projet Maven complet avec Spring DevTools. Consultez la documentation sur le rechargement à chaud pour en savoir plus.

Passer à un projet complet​

Lorsque votre prototype dépasse le cadre d’un seul fichier, créez un véritable projet avec startforJ ou l’archétype Maven. Vous pouvez copier directement la logique de votre script dans la structure de projet générée.

Continuez à apprendre.