Creare una native image
Compilazione anticipata
Creare una native image è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Creare un'immagine nativa
Lo strumento native-image trasforma il bytecode Java compilato in un unico eseguibile nativo autonomo. Questa lezione illustra il processo di build, cosa accade sotto il cofano e come eseguire il risultato.
Iniziare con Java ordinario
La native image parte da normali classi compilate. Immaginate di compilare in codice nativo il semplice programma seguente.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello from a native binary!");
}
}Compilare, quindi creare
I passaggi sono due: prima javac Hello.java produce Hello.class; poi native-image Hello produce un eseguibile chiamato hello. La build è molto più lenta della compilazione perché analizza l'intero programma.
Analisi a mondo chiuso
native-image esegue un'analisi a mondo chiuso: deve vedere tutto il codice che potrebbe essere eseguito. Partendo da main, percorre ogni metodo raggiungibile e include nel binario solo quelli. Tutto ciò che non è raggiungibile viene rimosso (eliminazione del codice morto in fase di linking).
Compilazione ahead-of-time
I metodi raggiungibili vengono compilati in codice macchina nativo in anticipo. Poiché non rimane bytecode da interpretare e non c'è un JIT, non è necessario alcun riscaldamento: il programma raggiunge la piena velocità fin dalla prima istruzione.
Inizializzazione in fase di build
Per avviarsi rapidamente, native-image può eseguire gli inizializzatori statici in fase di build e incorporare l'heap risultante nell'immagine (l'heap dell'immagine). Ciò significa che alcuni oggetti esistono già nell'istante in cui il programma viene avviato.
Eseguire l'eseguibile
L'output è un normale eseguibile del sistema operativo. Potete eseguirlo direttamente: non servono né java -jar né un'installazione della JVM sul computer di destinazione. A seconda dei flag, è inoltre completamente statico o prevalentemente statico.
Flag di build comuni
Tra le opzioni utili ci sono:
-o name— nome del file di output.--no-fallback— fallisce invece di generare un'immagine di fallback dipendente dalla JVM.-O2/-O3— livello di ottimizzazione.--static— binario completamente collegato staticamente (Linux).
Memoria e spazio su disco
La build in sé richiede molta memoria: le applicazioni di grandi dimensioni possono aver bisogno di diversi gigabyte di RAM e di minuti di CPU. Questo costo viene sostenuto una volta sola in fase di build, in cambio di un avvio economico e rapido a runtime.
Creare tramite Maven/Gradle
Nei progetti reali raramente chiamate native-image manualmente. I plug-in native-build-tools di GraalVM lo integrano in Maven (native:compile) e Gradle (nativeCompile), così il binario entra nella normale pipeline di build.
Verificare l'avvio
Dopo la build, confrontate i tempi di avvio: l'avvio con java -jar può richiedere centinaia di millisecondi, mentre il binario nativo restituisce il controllo in pochi millisecondi. Misurare questa differenza è il motivo principale per cui si sceglie l'esecuzione nativa.
Verifica rapida
Verificate la vostra comprensione della creazione di immagini native.
Riepilogo
Avete imparato come funziona la build di native-image:
- Si parte dal bytecode compilato;
native-imageproduce un eseguibile autonomo. - L'analisi a mondo chiuso individua tutto il codice raggiungibile da
main. - Il codice raggiungibile viene compilato con AOT; quello non raggiungibile viene rimosso.
- L'inizializzazione in fase di build incorpora un heap dell'immagine per ottenere un avvio rapido.
- La build è lenta e richiede molta memoria; integratela tramite i plug-in Maven/Gradle.
Domande Frequenti
La lezione «Creare una native image» è gratuita?
Sì — il testo completo di «Creare una native image» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «Creare una native image»?
Compilazione anticipata Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Creare una native image»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Cos'è GraalVM
- Creare una native image
- Reflection e configurazione
- Compromessi della native image