Java Academy · leksjon

Bygge et native image

Kompilering på forhånd

Leksjon 2 av 413 trinn

Bygge et native image er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 4 leksjoner.

Bygge en Native Image

Verktøyet native-image gjør kompilert Java-bytecode om til én selvstendig native kjørbar fil. Denne leksjonen går gjennom byggeprosessen, hva som skjer under overflaten og hvordan du kjører resultatet.

Start med vanlig Java

Native Image bygges fra vanlige kompilerte klasser. Her er et enkelt program som vi tenker oss at vi kompilerer til native kode.

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello from a native binary!");
    }
}

Kompiler, og bygg deretter

De to trinnene er følgende: Først produserer javac Hello.java Hello.class; deretter produserer native-image Hello en kjørbar fil med navnet hello. Bygget tar mye lengre tid enn kompileringen fordi det analyserer hele programmet.

Closed-world-analyse

native-image utfører closed-world-analyse: Den må se all kode som noen gang kan kjøre. Med utgangspunkt i main går den gjennom alle nåbare metoder og inkluderer bare disse i binærfilen. Alt som ikke er nåbart, fjernes (eliminering av død kode ved lenking).

Ahead-of-time-kompilering

Nåbare metoder kompileres til native maskinkode ahead of time. Fordi det ikke er igjen bytekode som må tolkes, og ingen JIT-kompilator, finnes det heller ingen oppvarming – programmet kjører med full hastighet fra sin første instruksjon.

Initialisering ved byggetid

For å starte raskt kan native-image kjøre statiske initialiserere ved byggetid og bygge det resulterende heap-innholdet inn i imaget (den såkalte image heap). Det betyr at enkelte objekter allerede finnes idet programmet starter.

Kjøre den kjørbare filen

Resultatet er en vanlig kjørbar fil for operativsystemet. Du kjører den direkte – ingen java -jar og ingen JVM-installasjon kreves på målmaskinen. Den er også fullstendig statisk eller for det meste statisk, avhengig av flaggene.

Vanlige byggeflagg

Nyttige alternativer omfatter:

  • -o name — navn på utdatafilen.
  • --no-fallback — mislykkes i stedet for å lage et JVM-avhengig fallback-image.
  • -O2 / -O3 — optimaliseringsnivå.
  • --static — fullstendig statisk lenket binærfil (Linux).

Minne og disk

Selve bygget krever mye minne – store applikasjoner kan trenge flere gigabyte RAM og flere minutter med CPU-tid. Denne kostnaden betales én gang ved bygging, mot rimelig og rask oppstart under kjøring.

Bygge via Maven/Gradle

I virkelige prosjekter kjører du sjelden native-image for hånd. GraalVMs native-build-tools-programtillegg integrerer det i Maven (native:compile) og Gradle (nativeCompile), slik at binærfilen blir en del av den vanlige byggeprosessen.

Kontrollere oppstarten

Etter byggingen kan du sammenligne oppstarten: En java -jar-oppstart kan ta hundrevis av millisekunder, mens native-binærfilen starter på noen få millisekunder. Å måle denne forskjellen er hele poenget med å gå native.

Kort kontroll

Test forståelsen din av hvordan du bygger native image-filer.

Oppsummering

Du lærte hvordan native-image bygges:

  • Start med kompilert bytekode; native-image produserer en selvstendig kjørbar fil.
  • Closed-world-analyse finner all nåbar kode fra main.
  • Nåbar kode AOT-kompileres; kode som ikke er nåbar, fjernes.
  • Initialisering ved byggetid bygger et image heap inn i imaget for rask oppstart.
  • Bygget er tregt og minnekrevende; integrer det via Maven-/Gradle-programtillegg.
Gratis å komme i gang

Lær deg Java med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
104
Leksjoner
374

Ofte stilte spørsmål

Er leksjonen «Bygge et native image» gratis?

Ja – hele teksten i «Bygge et native image» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Bygge et native image»?

Kompilering på forhånd Du øver på Java Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Java Academy?

Ingen tidligere erfaring er nødvendig. Java Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Bygge et native image»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Java Academy-leksjonen?

Ja. Alle Java Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hva er GraalVM
  2. Bygge et native image
  3. Refleksjon og konfigurasjon
  4. Avveininger ved native image
← Tilbake til Java Academy