Siirry pääsisältöön

JBang 25.11

Avaa ChatGPT:ssä

JBang on työkalu, jonka avulla voit suorittaa Java-koodia skripteinä ilman rakennustiedostoja, projektin asetuksia tai manuaalista kääntämistä. webforJ JBang -integraatio mahdollistaa webforJ-sovellusten nopean luomisen, mikä sopii parhaiten nopeaan prototyyppien tekemiseen, oppimiseen ja nopeisiin demoesityksiin ilman tarpeettomia perinteisiä riippuvuuksia ja infrastruktuuria täysimittaisessa Java-ohjelmassa.

Miksi käyttää JBangia webforJ:n kanssa

Perinteiset webforJ-projektit käyttävät Mavenia tai Gradlea, joissa on useita konfiguraatiotiedostoja ja standardi projektirakenne. Tämä asetelma on vakiintunut tuotantosovelluksille, mutta se voi tuntua raskaalta yksinkertaisille kokeille tai demoesityksille.

JBangin avulla voit:

  • Aloittaa heti: Kirjoita yksi .java-tiedosto ja suorita se välittömästi
  • Hyväksyä projektiasetukset: Ei pom.xml, ei build.gradle, ei hakemistorakennetta
  • Jakaa helposti: Lähetä jollekin yksi tiedosto, jota he voivat käyttää yhdellä komennolla
  • Oppia nopeammin: Keskity webforJ-käsitteisiin ilman rakennustyökalujen monimutkaisuutta

Integraatio sisältää automaattisen palvelimen sammutuksen, kun suljet selainvälilehden, mikä pitää kehitystyön virtasi puhtaana.

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

Vahvista 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
Opettele lisää JBangista

Kattavan JBang-dokumentaation löytämiseksi katso:

webforJ-skriptin luominen

Luo tiedosto nimeltä HelloWorld.java seuraavalla sisällöllä:

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 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);
}
}

Skriptirakenteen ymmärtäminen

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

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

Vaihe

Korvaa 25.11 uusimmalla webforJ-versiolla. Tarkista Maven Central viimeisimmät julkaisut varten.

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 hankkii ne automaattisesti Maven Centralista ensimmäisellä ajolla.

Skriptin suorittaminen

Suorita skripti JBangilla:

jbang HelloWorld.java

JBang:

  1. Lataa riippuvuudet (vain ensimmäisellä ajolla)
  2. Kääntää skriptin
  3. Käynnistää upotetun palvelimen satunnaiselle saatavilla olevalle portille
  4. Avaa oletusselaimesi sovellukseen

Tee skriptistä suoritettavissa oleva

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

chmod +x HelloWorld.java
./HelloWorld.java

Tämä toimii, koska tiedoston yläosassa on shebang-rivi.

IDE-tuki

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

Katso JBang IDE -integraatiosdokumentoida asetusten ohjeita ja tuettuja editoria.

Konfigurointi

webforJ JBang -starterissa on järkevät oletusasetukset, jotka on optimoitu skriptejä varten. Voit mukauttaa käyttäytymistä järjestelmäominaisuuksien avulla.

Automaattinen sammutus

Oletuksena palvelin sammutetaan automaattisesti, kun kaikki sovellukseen liitetyt selainvälilehdet on suljettu. Tämä pitää kehitystyön virtasi puhtaana, eikä jätä orpoja palvelimia käynnissä.

OminaisuusOletusKuvaus
webforj.jbang.auto-shutdowntrueKytke automaattinen sammutus päälle tai pois
webforj.jbang.idle-timeout5Sekuntia, odota viimeisen selainyhteyden katkeamisen jälkeen ennen sammutusta

Poista automaattinen sammutus käytöstä:

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

Muuta käyttämättömiä aikarajoja:

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

Oletusasetukset

JBang-starter konfiguroi seuraavat oletusasetukset:

AsetusArvoKuvaus
server.port0Satunnainen portin määritys konfliktien välttämiseksi useiden skriptien suorittamisessa
server.shutdownimmediateNopea sammutus nopean skriptin päättämiseksi
spring.main.banner-modeoffPiilottaa Spring Boot -bannerin puhtaamman tulostuksen vuoksi
logging.level.rootERRORMinimalistinen lokitus, jotta konsoliin tulostus on puhdasta
logging.level.com.webforjWARNNäyttää vain varoitukset ja virheet webforJ:stä
webforj.devtools.browser.opentrueAvaa selaimen automaattisesti, kun sovellus käynnistyy

Uudelleenasennus ja live-reload

JBang-skriptit eivät tue live-reloadia. Jotta näet muutoksia:

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

Automaattiseen uudelleenasentamiseen kehityksen aikana harkitse täysimittaisen Maven-projektin käyttöä Spring DevToolsin kanssa. Katso live-reload dokumentaatio lisätietoja varten.

Siirtyminen täysimittaiseen projektiin

Kun prototyypisi kasvaa yhden tiedoston yli, luo asianmukainen projekti käyttämällä startforJ tai Maven-archetypea. Voit kopioida skriptisi logiikan suoraan luotuun projektirakenteeseen.