Skip to content

Creare eseguibili nativi ​

NeoObjectPascal impacchetta un programma .npas in un eseguibile nativo autocontenuto — senza richiedere che l'utente finale abbia Java installato. Un singolo comando produce:

  • macOS → un pacchetto .app
  • Windows → una cartella con un .exe
  • Linux → una cartella con un binario in bin/

Sotto il cofano, il build usa jpackage (parte del JDK 14+), che impacchetta l'interprete, il tuo progetto e un runtime Java (JRE) minimale all'interno dell'app.

Prerequisiti ​

  • Un JDK 14 o superiore nel PATH (jpackage accompagna il JDK).
  • Eseguire a partire dal JAR impacchettato dell'interprete (neoobjectpascal.jar).

Uso ​

bash
java -jar neoobjectpascal.jar --build programa.npas [opzioni]
OpzioneDescrizione
--icon <png>icona dell'app, a partire da un PNG (convertita per piattaforma)
--name <Nome>nome dell'app/eseguibile (predefinito: nome del programma)
--output <dir>directory di output (predefinito: ./dist)
--target <mac|windows|linux>piattaforma di destinazione (predefinito: il SO corrente)

Esempio ​

bash
java -jar neoobjectpascal.jar --build main.npas --icon icon.png --name CalculoITBI --output dist
Saída
 📦 Empacotando 'main.npas' → macOS (.app) (CalculoITBI) • 5 arquivo(s) do projeto incluídos (a partir de .../NeoObjectPascal-Examples) • ícone: app-icon.icns • rodando jpackage... ✅ Build concluído: dist/CalculoITBI.app Executar: open "dist/CalculoITBI.app" 

L'intero progetto viene impacchettato ​

L'intera directory del programma è inclusa nell'app — file e sottocartelle, preservando la struttura. In altre parole:

  • I moduli importati con uses cartella.modulo (ad esempio helpers/calculoitbi.npas) vengono inclusi.
  • Anche i file di dati e gli asset che il programma legge a runtime sono inclusi.

Così l'app impacchettata gira esattamente come il programma girava a partire dal codice sorgente. Le directory "spazzatura" (.git, node_modules, la stessa directory di output, ...) vengono ignorate.

Icona a partire da un PNG ​

Passa un singolo PNG con --icon; il build lo converte nel formato corretto di ciascuna piattaforma:

PiattaformaFormato dell'iconaConversione
macOS.icnstramite iconset + iconutil (nativi di macOS)
Windows.icointegrata in Java (senza strumenti esterni)
Linux.pngusato direttamente

Usa un PNG quadrato (ad esempio 512×512 o 1024×1024) per il risultato migliore.

Una piattaforma alla volta ​

jpackage non fa cross-compile: ogni artefatto viene generato sul proprio sistema operativo. Su macOS generi il .app; il .exe viene generato su Windows e il bin su Linux. Per produrre tutti e tre, esegui il build su ciascun SO (oppure usa una matrice di CI). Se passi un --target diverso dal SO corrente, il comando avvisa con un errore chiaro.

Dal VS Code ​

Con l'estensione installata, fai clic con il tasto destro su un file .npas (o su una cartella del progetto) e scegli Build Native Executable. L'estensione chiede il nome dell'app e, facoltativamente, un'icona PNG, e genera il risultato in dist/.

Eseguire il risultato ​

  • macOS: open dist/CalculoITBI.app (oppure fai doppio clic).
  • Windows: dist\CalculoITBI\CalculoITBI.exe.
  • Linux: dist/CalculoITBI/bin/CalculoITBI.

Dimensione dell'app

Ogni eseguibile è autocontenuto e include un JRE, quindi occupa alcune decine di MB — è la natura di un'app Java nativa, in cambio del non richiedere Java sulla macchina dell'utente.

Programmi interattivi (TerminalInk)

Le app da terminale realizzate con TerminalInk funzionano una volta impacchettate: quando vengono aperte con un doppio clic (senza un terminale), TerminalInk apre la propria finestra. I programmi da console puri (WriteLn) è meglio eseguirli da un terminale, per vedere l'output.

Prossimi passi ​

Con il build nativo distribuisci i tuoi programmi come vere e proprie app. Per rivedere la sintassi completa del linguaggio, vedi il Riferimento del linguaggio.