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.