Siirry pääsisältöön

JBang 25.11

Avaa ChatGPT:ssä

JBang on työkalu, joka mahdollistaa Java-koodin suorittamisen skripteinä ilman build-tiedostoja, projektin asetuksia tai manuaalista käännöstä. webforJ JBang -integraatio mahdollistaa webforJ-sovellusten nopean luomisen, mikä sopii parhaiten nopeaan prototyyppaukseen, oppimiseen ja nopeisiin demonstrointeihin ilman tarvetta perinteisille riippuvuuksille ja infrastruktuurille täysimittaisessa Java-ohjelmassa.

Miksi käyttää JBangia webforJ:n kanssa

Perinteiset webforJ-projektit käyttävät Mavenia tai Gradlea useilla konfiguraatiotiedostoilla ja standardilla projektirakenteella. Tämä asettelu on tavanomainen tuotantosovelluksille, mutta voi tuntua raskaalta yksinkertaisille kokeiluille tai demonstroinneille.

JBangin avulla voit:

  • Aloittaa heti: Kirjoita yksi .java-tiedosto ja suorita se heti
  • Ohittaa projektin asetuksen: Ei pom.xml, ei build.gradle, ei hakemistorakennetta
  • Jakaa helposti: Lähetä jollekin yksi tiedosto, jonka hän voi suorittaa yhdellä komennolla
  • Oppia nopeammin: Keskity webforJ-konsepteihin ilman build-työkalujen monimutkaisuutta

Integraatio sisältää automaattisen palvelimen sammutuksen, kun suljet selainvälilehden, pitäen kehitystyösi siistinä.

Ennakkoedellytykset

Asenna JBang

Valitse haluamasi asennustapa:

# Yleinen (Linux/macOS/Windows bashilla)
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

Varmista asennus:

jbang --version
Oletus Java-versio

Kun suoritat JBangin ensimmäistä kertaa ilman asennettua JDK:ta, JBang lataa sen automaattisesti. Voit määrittää JDK-version ja toimittajan ennen JBangin suorittamista:

export JBANG_DEFAULT_JAVA_VERSION=21
export JBANG_JDK_VENDOR=temurin
Opi lisää JBangista

Katso kattava JBang-dokumentaatio:

WebforJ-skripti luominen

Luo tiedosto nimeltä HelloWorld.java, jossa on seuraava sisältö:

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("Mikä on nimesi?");
private Button btn = new Button("Sano Hei");

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("Tervetuloa webforJ JBang Starter " + hello.getValue() + "!", Theme.GRAY));

self.add(hello, btn);
}
}

Skriptin rakenteen ymmärtäminen

RiviTavoite
///usr/bin/env jbang "$0" "$@" ; exit $?Shebang-rivi, joka mahdollistaa skriptin suorittamisen suoraan Unix-järjestelmissä
//JAVA 21Määrittää vähimmäis Java-version, joka vaaditaan; JBang lataa sen automaattisesti tarvittaessa
//DEPS com.webforj:webforj-jbang-starter:25.11Julistaa webforJ JBang -starterin riippuvuudeksi Maven-koodistolla
@SpringBootApplicationMahdollistaa Spring Bootin automaattisen konfiguroinnin
extends AppTekee tästä luokasta webforJ-sovelluksen

webforj-jbang-starter-riippuvuus sisältää kaiken, mitä tarvitset webforJ-sovelluksen suorittamiseen: Spring Boot -starterin, kehitystyökalut ja automaattisen selaimen avaamisen.

Versio

Korvaa 25.11 uusimmalla webforJ-versiolla. Tarkista Maven Central viimeisimmän julkaisun vuoksi.

Riippuvuuksien lisääminen

Voit lisätä lisä Maven-riippuvuuksia useilla //DEPS-riveillä:

///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

Riippuvuudet käyttävät standardeja Maven-koordinaatteja (groupId:artifactId:version). JBang noutaa ne automaattisesti Maven Centralista ensikäynnillä.

Skriptisi suorittaminen

Suorita skripti JBangilla:

jbang HelloWorld.java

JBang tekee seuraavaa:

  1. Lataa riippuvuudet (ensimmäisellä käynnillä)
  2. Kääntää skriptin
  3. Käynnistää upotetun palvelimen satunnaisella käytettävissä olevalla portilla
  4. Avaa oletusselaimesi sovelluksessa

Skriptin tekeminen suoritettavaksi

Unix-järjestelmissä voit tehdä skriptistä suoraan suoritettavan:

chmod +x HelloWorld.java
./HelloWorld.java

Tämä toimii sen vuoksi, että tiedoston yläreunassa on shebang-rivi.

IDE-tuki

JBang integroituu suosittuihin Java-IDE:ihin, mukaan lukien VS Code, IntelliJ IDEA, Eclipse ja muihin. Nämä integraatiot tarjoavat ominaisuuksia, kuten direktiivien automaattisen täydentämisen, automaattisen riippuvuuksien ratkaisun ja kyvyn suorittaa ja virheenkorjata skriptejä suoraan IDE:stä.

Katso JBang IDE -integraatiodokumentaatio asennusohjeita ja tuettuja muokkaimia varten.

Konfigurointi

webforJ JBang -starter sisältää järkevät oletukset, jotka on optimoitu skriptausta varten. Voit mukauttaa käyttäytymistä käyttämällä järjestelmäominaisuuksia.

Automaattinen sammuttaminen

Oletuksena palvelin sammuu automaattisesti, kun kaikki selainvälilehdet, joihin sovellus on yhteydessä, on suljettu. Tämä pitää kehitystyösi siistinä ilman, että orvot palvelimet jäävät päälle.

OminaisuusOletusKuvaus
webforj.jbang.auto-shutdowntrueKytke automaattinen sammutus päälle tai pois
webforj.jbang.idle-timeout5Sekuntia odottaa viimeisen selainyhteyden katkaisemisen jälkeen ennen sammuttamista

Kytkeäksesi automaattisen sammutuksen pois päältä:

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

Vaihtaaksesi tyhjien aikarajojen:

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

Oletusasetukset

JBang-starter määrittää seuraavat oletukset:

AsetusArvoKuvaus
server.port0Satunnainen porttijako välttääkseen konflikteja useita skriptejä suoritettaessa
server.shutdownimmediateNopeaa sammutusta, jotta skripti voidaan lopettaa nopeasti
spring.main.banner-modeoffPiilottaa Spring Boot -bannerin siistimmän tulostuksen vuoksi
logging.level.rootERRORVähäinen lokitus pitää konsolitulostuksen siistinä
logging.level.com.webforjWARNNäyttää vain varoitukset ja virheet webforJ:stä
webforj.devtools.browser.opentrueAvaa selaimen automaattisesti, kun sovellus käynnistyy

Käyttöönotto ja live-päivitys

JBang-skriptit eivät tue live-päivityksiä. Jotta näet muutokset:

  1. Lopeta käynnissä oleva skripti (sulje selainvälilehti tai paina Ctrl+C)
  2. Muokkaa koodiasi
  3. Suorita jbang HelloWorld.java uudelleen

Automaattista käyttöönottoa kehityksen aikana varten harkitse täydellistä Maven-projektia Spring DevToolsin kanssa. Katso live-päivitysdokumentaatio lisätietoja varten.

Siirtyminen täysimittaiseen projektiin

Kun prototyyppisi kasvaa yhden tiedoston yli, luo oikea projekti käyttäen startforJ tai Maven arkkityyppi. Voit kopioida skriptisi logiikan suoraan luotuun projektirakenteeseen.