Membangun Native Image
Kompilasi sebelum waktu berjalan.
Membangun Native Image adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Membangun Citra Mandiri
Alat native-image mengubah kode bita Java yang telah dikompilasi menjadi satu program biner mandiri. Pelajaran ini membahas proses pembuatannya, apa yang terjadi di balik layar, dan cara menjalankan hasilnya.
Mulai dengan Java Biasa
Citra mandiri dimulai dari kelas-kelas biasa yang telah dikompilasi. Berikut adalah program sederhana yang akan kita bayangkan dikompilasi menjadi kode mandiri.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello from a native binary!");
}
}Kompilasi, Lalu Bangun
Ada dua langkah: pertama, javac Hello.java menghasilkan Hello.class; kemudian native-image Hello menghasilkan program biner bernama hello. Proses pembuatan jauh lebih lambat daripada kompilasi karena menganalisis seluruh program.
Analisis Dunia Tertutup
native-image melakukan analisis dunia tertutup: alat ini harus melihat semua kode yang mungkin pernah berjalan. Dimulai dari main, alat ini menelusuri setiap metode yang dapat dijangkau dan hanya memasukkannya ke dalam biner. Apa pun yang tidak dapat dijangkau akan dihapus (penghapusan kode mati saat penautan).
Kompilasi Sebelum Waktu Eksekusi
Metode yang dapat dijangkau dikompilasi menjadi kode mesin asli sebelum waktu eksekusi. Karena tidak ada kode bita yang tersisa untuk ditafsirkan dan tidak ada kompilasi saat berjalan, tidak ada pula pemanasan — program berjalan dengan kecepatan penuh sejak instruksi pertamanya.
Inisialisasi Saat Pembuatan
Agar dapat dimulai dengan cepat, native-image dapat menjalankan penginisialisasi statis pada waktu pembuatan dan menyertakan heap yang dihasilkan ke dalam citra (tumpukan memori citra). Artinya, beberapa objek sudah ada saat program diluncurkan.
Menjalankan Program Biner
Keluaran yang dihasilkan adalah program biner OS biasa. Anda menjalankannya secara langsung — tanpa java -jar dan tanpa perlu memasang JVM pada mesin target. Program ini juga tertaut secara statis sepenuhnya atau sebagian besar, bergantung pada opsi yang digunakan.
Opsi Pembuatan Umum
Opsi yang berguna meliputi:
-o name— nama berkas keluaran.--no-fallback— gagal alih-alih menghasilkan citra cadangan yang bergantung pada JVM.-O2/-O3— tingkat optimasi.--static— biner yang ditautkan secara statis sepenuhnya (Linux).
Memori dan Penyimpanan
Proses pembuatan itu sendiri membutuhkan banyak memori — aplikasi besar dapat memerlukan RAM beberapa gigabita dan CPU selama beberapa menit. Biaya ini dibayar sekali pada waktu pembuatan sebagai imbalan atas waktu mulai saat berjalan yang cepat dan murah.
Membangun melalui Maven/Gradle
Dalam proyek nyata, Anda jarang memanggil native-image secara manual. Pengaya native-build-tools dari GraalVM mengintegrasikan alat tersebut ke dalam Maven (native:compile) dan Gradle (nativeCompile) sehingga biner menjadi bagian dari alur pembuatan normal Anda.
Memverifikasi Waktu Mulai
Setelah membangun, bandingkan waktu mulainya: peluncuran java -jar mungkin memerlukan ratusan milidetik, sedangkan biner mandiri dapat memberikan respons dalam satu digit milidetik. Mengukur perbedaan inilah tujuan utama pembuatan biner mandiri.
Pemeriksaan Singkat
Uji pemahaman Anda tentang pembuatan citra mandiri.
Rangkuman
Anda telah mempelajari pembuatan native-image:
- Mulai dari kode bita yang telah dikompilasi;
native-imagemenghasilkan program biner mandiri. - Analisis dunia tertutup menemukan semua kode yang dapat dijangkau dari
main. - Kode yang dapat dijangkau dikompilasi secara AOT; kode yang tidak dapat dijangkau dihapus.
- Inisialisasi saat pembuatan menyertakan tumpukan memori citra untuk mempercepat waktu mulai.
- Proses pembuatan lambat dan membutuhkan banyak memori; integrasikan melalui pengaya Maven/Gradle.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membangun Native Image” gratis?
Ya — teks lengkap “Membangun Native Image” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membangun Native Image”?
Kompilasi sebelum waktu berjalan. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Membangun Native Image” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Apa Itu GraalVM
- Membangun Native Image
- Refleksi dan Konfigurasi
- Pertukaran dalam Native Image