Siirry pääsisältöön

JBang 25.11

Avaa ChatGPT:ssä

JBang on työkalu, jolla voit suorittaa Java-koodia skripteinä ilman koontitiedostoja, projektin alustamista tai manuaalista kääntämistä. webforJ:n JBang-integraation avulla voit luoda webforJ-sovelluksia nopeasti. Se sopii erityisesti nopeaan prototypointiin, oppimiseen ja pikademoihin ilman täysimittaisen Java-ohjelman perinteisiä riippuvuuksia ja infrastruktuuria.

Miksi käyttää JBangia webforJ:n kanssa​

Perinteisissä webforJ-projekteissa käytetään Mavenia tai Gradlea, joihin liittyy useita määritystiedostoja ja vakiomuotoinen projektirakenne. Tämä on tuotantosovelluksissa tavallista, mutta voi tuntua raskaalta yksinkertaisissa kokeiluissa tai demoissa.

JBangin avulla voit:

  • Aloittaa heti: Kirjoita yksi .java-tiedosto ja suorita se saman tien
  • Ohittaa projektin alustamisen: Ei pom.xml- tai build.gradle-tiedostoa eikä hakemistorakennetta
  • Jakaa helposti: Lähetä jollekulle yksi tiedosto, jonka hän voi suorittaa yhdellä komennolla
  • Oppia nopeammin: Keskity webforJ-konsepteihin ilman koontityökalujen monimutkaisuutta

Integraatio sammuttaa palvelimen automaattisesti, kun suljet selaimen välilehden, mikä pitää kehitystyönkulun siistinä.

Edellytykset​

JBangin asentaminen​

Valitse haluamasi asennustapa:

# 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

Varmista asennus:

jbang --version
Java-oletusversio

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

export JBANG_DEFAULT_JAVA_VERSION=21
export JBANG_JDK_VENDOR=temurin
Lisätietoja JBangista

Kattavat JBang-dokumentit ovat saatavilla seuraavissa lähteissä:

webforJ-skriptin luominen​

Luo tiedosto nimeltä HelloWorld.java ja lisää siihen 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("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);
}
}

Skriptin rakenteen ymmärtäminen​

RiviTarkoitus
///usr/bin/env jbang "$0" "$@" ; exit $?Shebang-rivi, jonka ansiosta skriptin voi suorittaa suoraan Unix-järjestelmissä
//JAVA 21Määrittää vaaditun Java-version vähimmäistason; JBang lataa sen tarvittaessa automaattisesti
//DEPS com.webforj:webforj-jbang-starter:25.11Määrittää webforJ JBang -aloituspaketin riippuvuudeksi Maven-koordinaateilla
@SpringBootApplicationOttaa Spring Bootin automaattisen määrityksen käyttöön
extends AppMäärittää tämän luokan webforJ-sovellukseksi

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

Versio

Korvaa 25.11 webforJ:n uusimmalla versiolla. Tarkista Maven Centralista uusin julkaisu.

Riippuvuuksien lisääminen​

Voit lisätä muita 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

Riippuvuuksissa käytetään Mavenin vakiomuotoisia koordinaatteja (groupId:artifactId:version). JBang noutaa ne automaattisesti Maven Centralista ensimmäisellä suorituskerralla.

Skriptin suorittaminen​

Suorita skripti JBangilla:

jbang HelloWorld.java

JBang:

  1. Lataa riippuvuudet (vain ensimmäisellä suorituskerralla)
  2. Kääntää skriptin
  3. Käynnistää upotetun palvelimen satunnaisessa käytettävissä olevassa portissa
  4. Avaa sovelluksen oletusselaimessasi

Skriptin määrittäminen suoritettavaksi​

Unix-järjestelmissä voit määrittää skriptin suoraan suoritettavaksi:

chmod +x HelloWorld.java
./HelloWorld.java

Tämä toimii tiedoston alussa olevan shebang-rivin ansiosta.

IDE-tuki​

JBang integroituu suosittuihin Java-IDE-ympäristöihin, kuten VS Codeen, IntelliJ IDEAan, Eclipseen ja muihin. Integraatiot tarjoavat muun muassa direktiivien automaattisen täydennyksen, riippuvuuksien automaattisen ratkaisemisen sekä mahdollisuuden suorittaa ja virheenkorjata skriptejä suoraan IDE-ympäristössä.

Katso asennusohjeet ja tuetut editorit JBangin IDE-integraation dokumentaatiosta.

Määritys​

webforJ JBang -aloituspaketti sisältää skriptikäyttöön optimoidut järkevät oletusarvot. Voit mukauttaa toimintaa järjestelmäominaisuuksien avulla.

Automaattinen sammutus​

Oletusarvoisesti palvelin sammuu automaattisesti, kun kaikki sovellukseen yhdistetyt selaimen välilehdet suljetaan. Näin kehitystyönkulku pysyy siistinä, eikä käynnissä ole irrallisia palvelimia.

OminaisuusOletusarvoKuvaus
webforj.jbang.auto-shutdowntrueOttaa automaattisen sammutuksen käyttöön tai poistaa sen käytöstä
webforj.jbang.idle-timeout5Odotusaika sekunteina viimeisen selainyhteyden katkeamisen jälkeen ennen sammutusta

Voit poistaa automaattisen sammutuksen käytöstä:

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

Voit muuttaa joutokäynnin aikakatkaisua:

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

Oletusasetukset​

JBang-aloituspaketti määrittää seuraavat oletusarvot:

AsetusArvoKuvaus
server.port0Määrittää satunnaisen portin, jotta useiden skriptien suorittaminen ei aiheuta ristiriitoja
server.shutdownimmediateNopea sammutus skriptin pikaista päättämistä varten
spring.main.banner-modeoffPiilottaa Spring Boot -bannerin tulosteen selkeyttämiseksi
logging.level.rootERRORPitää konsolitulosteen siistinä vähentämällä lokitiedot minimiin
logging.level.com.webforjWARNNäyttää vain webforJ:n varoitukset ja virheet
webforj.devtools.browser.opentrueAvaa selaimen automaattisesti sovelluksen käynnistyessä

Uudelleenkäyttöönotto ja live reload​

JBang-skriptit eivät tue live reloadia. Näet muutokset seuraavasti:

  1. Pysäytä käynnissä oleva skripti (sulje selaimen välilehti tai paina Ctrl+C)
  2. Muokkaa koodia
  3. Suorita jbang HelloWorld.java uudelleen

Jos haluat automaattisen uudelleenkäyttöönoton kehityksen aikana, harkitse täysimittaista Maven-projektia, jossa käytetään Spring DevToolsia. Lisätietoja on live reload -dokumentaatiossa.

Täysimittaiseen projektiin siirtyminen​

Kun prototyyppisi kasvaa yhtä tiedostoa suuremmaksi, luo varsinainen projekti käyttämällä startforJ:tä tai Maven-arkkityyppiä. Voit kopioida skriptin logiikan suoraan luodun projektin rakenteeseen.

Jatka oppimista