Bygg en native image
Kompilering före körning.
Bygg en native image är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Java Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Java Academy innehåller totalt 4 lektioner.
Bygga en native image
Verktyget native-image omvandlar kompilerad Java-bytecode till en enda, fristående native-körbar fil. I den här lektionen går vi igenom byggprocessen, vad som händer under huven och hur du kör resultatet.
Börja med vanlig Java
En native image utgår från vanliga kompilerade klasser. Här är ett enkelt program som vi tänker oss att vi kompilerar till native-kod.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello from a native binary!");
}
}Kompilera och bygg sedan
De två stegen är följande: först skapar javac Hello.java filen Hello.class; därefter skapar native-image Hello en körbar fil med namnet hello. Bygget tar betydligt längre tid än kompileringen eftersom hela programmet analyseras.
Analys av sluten värld
native-image utför en closed-world-analys: verktyget måste kunna se all kod som någonsin kan köras. Med start i main går det igenom alla nåbara metoder och tar endast med dem i binärfilen. Allt som inte kan nås tas bort (eliminering av död kod vid länkning).
Ahead-of-time-kompilering
Nåbara metoder kompileras till native-maskinkod i förväg. Eftersom ingen bytekod finns kvar att tolka och ingen JIT används finns det inte heller någon uppvärmning – programmet körs med full hastighet redan från sin första instruktion.
Initiering vid byggtid
För att starta snabbt kan native-image köra statiska initierare vid byggtiden och bädda in den resulterande heapen i avbilden (den så kallade image heap). Det innebär att vissa objekt redan finns när programmet startar.
Köra den körbara filen
Resultatet är en vanlig körbar fil för operativsystemet. Du kör den direkt – ingen java -jar och ingen installerad JVM krävs på måldatorn. Den är också helt eller till största delen statiskt länkad, beroende på flaggorna.
Vanliga byggflaggor
Användbara alternativ är bland annat:
-o name– namn på utdatafilen.--no-fallback– misslyckas i stället för att skapa en reservavbild som är beroende av JVM.-O2/-O3– optimeringsnivå.--static– helt statiskt länkad binärfil (Linux).
Minne och disk
Själva bygget kräver mycket minne – stora applikationer kan behöva flera gigabyte RAM och flera minuters processortid. Denna kostnad betalas en gång vid byggtillfället i utbyte mot billig och snabb uppstart vid körning.
Bygga via Maven/Gradle
I riktiga projekt kör du sällan native-image manuellt. GraalVM:s native-build-tools-plugin integrerar verktyget i Maven (native:compile) och Gradle (nativeCompile), så att binärfilen blir en del av din vanliga byggpipeline.
Verifiera uppstarten
Efter bygget kan du jämföra uppstartstiden: en start med java -jar kan ta hundratals millisekunder, medan native-binärfilen svarar på bara några millisekunder. Att mäta denna skillnad är hela poängen med att använda native.
Snabbtest
Testa dina kunskaper om hur native images byggs.
Sammanfattning
Du har lärt dig hur native-image byggs:
- Utgå från kompilerad bytekod;
native-imageskapar en fristående körbar fil. - Closed-world-analys hittar all nåbar kod från
main. - Nåbar kod AOT-kompileras, medan kod som inte kan nås tas bort.
- Initiering vid byggtid bäddar in en image heap för snabb uppstart.
- Bygget är långsamt och minneskrävande; integrera det via Maven-/Gradle-plugin.
Lär dig Java med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 104
- Lektioner
- 374
Vanliga frågor
Är lektionen ”Bygg en native image” gratis?
Ja – hela texten till ”Bygg en native image” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Java Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Java Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Bygg en native image”?
Kompilering före körning. Ni övar på Java Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Java Academy?
Du behöver inga förkunskaper. Utbildningen i Java Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Bygg en native image”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Java Academy-lektionen?
Ja. Varje Java Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Vad är GraalVM
- Bygg en native image
- Reflektion och konfiguration
- Avvägningar med native image