JBang 25.11
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, eibuild.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
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
Katso kattava JBang-dokumentaatio:
- JBang Aloitusopas - Asennus ja perusteet
- Skripti-direktiivien viite - Kaikki käytettävissä olevat direktiivit
- Riippuvuudet - Edistyksellinen riippuvuuden hallinta
WebforJ-skripti luominen
Luo tiedosto nimeltä HelloWorld.java, jossa on seuraava sisältö:
///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
| Rivi | Tavoite |
|---|---|
///usr/bin/env jbang "$0" "$@" ; exit $? | Shebang-rivi, joka mahdollistaa skriptin suorittamisen suoraan Unix-järjestelmissä |
//JAVA 21 | Määrittää vähimmäis Java-version, joka vaaditaan; JBang lataa sen automaattisesti tarvittaessa |
//DEPS com.webforj:webforj-jbang-starter:25.11 | Julistaa webforJ JBang -starterin riippuvuudeksi Maven-koodistolla |
@SpringBootApplication | Mahdollistaa Spring Bootin automaattisen konfiguroinnin |
extends App | Tekee 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.
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:
- Lataa riippuvuudet (ensimmäisellä käynnillä)
- Kääntää skriptin
- Käynnistää upotetun palvelimen satunnaisella käytettävissä olevalla portilla
- 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.
| Ominaisuus | Oletus | Kuvaus |
|---|---|---|
webforj.jbang.auto-shutdown | true | Kytke automaattinen sammutus päälle tai pois |
webforj.jbang.idle-timeout | 5 | Sekuntia 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:
| Asetus | Arvo | Kuvaus |
|---|---|---|
server.port | 0 | Satunnainen porttijako välttääkseen konflikteja useita skriptejä suoritettaessa |
server.shutdown | immediate | Nopeaa sammutusta, jotta skripti voidaan lopettaa nopeasti |
spring.main.banner-mode | off | Piilottaa Spring Boot -bannerin siistimmän tulostuksen vuoksi |
logging.level.root | ERROR | Vähäinen lokitus pitää konsolitulostuksen siistinä |
logging.level.com.webforj | WARN | Näyttää vain varoitukset ja virheet webforJ:stä |
webforj.devtools.browser.open | true | Avaa 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:
- Lopeta käynnissä oleva skripti (sulje selainvälilehti tai paina
Ctrl+C) - Muokkaa koodiasi
- Suorita
jbang HelloWorld.javauudelleen
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.