module-info.java
Deklarasikan modul.
module-info.java adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Sistem Modul
Sistem Modul Platform Java (JPMS), yang diperkenalkan di Java 9, memungkinkan Anda mengelompokkan paket ke dalam modul bernama dengan dependensi dan batas yang jelas.
Deklarasinya berada dalam file khusus: module-info.java.
Mengapa Modul
Sebelum ada modul, jalur kelas hanyalah kumpulan berkas JAR yang datar dan tidak terstruktur. Siapa pun dapat mengakses kelas publik apa pun, dan dependensi yang hilang baru diketahui saat eksekusi.
Modul menambahkan enkapsulasi kuat dan konfigurasi andal yang diverifikasi saat kompilasi dan peluncuran.
Tempat module-info Berada
module-info.java berada di akar pohon sumber Anda, di atas direktori paket. File ini dikompilasi menjadi module-info.class di akar modul.
Tepat ada satu file untuk setiap modul.
Deklarasi Minimal
Modul paling sederhana hanya memiliki nama. Berdasarkan konvensi, nama menggunakan format DNS terbalik, seperti nama paket.
module com.example.app {
}Mendeklarasikan Dependensi
Gunakan requires untuk bergantung pada modul lain. Setiap modul secara implisit memerlukan java.base, jadi Anda tidak perlu mendeklarasikan modul tersebut.
module com.example.app {
requires java.sql;
requires java.logging;
}Mengekspos Paket
Secara bawaan, paket-paket dalam modul disembunyikan. Gunakan exports agar tipe publik suatu paket dapat dilihat oleh modul lain.
module com.example.app {
exports com.example.app.api;
}Enkapsulasi Kuat
Paket apa pun yang tidak Anda export sepenuhnya tidak dapat diakses dari luar, bahkan kelas publik di dalamnya. Inilah perbedaan besar dibandingkan dunia jalur kelas.
Paket internal tetap bersifat internal dan diberlakukan oleh JVM.
Aturan Penamaan Modul
Nama modul mengikuti aturan leksikal yang sama seperti paket: pengenal yang dipisahkan dengan titik. Pilih nama yang stabil dan unik secara global karena modul lain bergantung padanya berdasarkan nama.
Mengganti nama modul merupakan perubahan yang merusak kompatibilitas bagi penggunanya.
Contoh yang Lebih Lengkap
Deklarasi nyata menggabungkan requires dan exports. Modul ini bergantung pada pencatatan log dan hanya mengekspos paket API publiknya.
module com.example.orders {
requires java.logging;
requires com.example.payments;
exports com.example.orders.api;
}Mengompilasi Modul
Anda mengompilasi dengan opsi yang mendukung modul. Opsi --module-source-path dan -d memberi tahu kompiler lokasi sumber dan keluaran.
javac -d out --module-source-path src $(find src -name '*.java')java --module-path out --module com.example.app/com.example.app.Main
Jalur Modul
Modul diselesaikan dari jalur modul (--module-path), penerus modular dari jalur kelas. Peluncur membaca deskriptor setiap modul untuk membangun graf dependensi sebelum menjalankan program.
Pemeriksaan Singkat
Ingat kembali visibilitas bawaan paket.
Ringkasan
Anda telah mempelajari dasar-dasar module-info.java:
- Satu deskriptor untuk setiap modul di akar sumber
requiresmendeklarasikan dependensi;java.basebersifat implisitexportsmengekspos sebuah paket; semua yang lain dienkapsulasi- Dibangun dan dijalankan dengan
--module-pathdan--module
Berikutnya: direktif dependensi dan ekspor secara mendalam.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “module-info.java” gratis?
Ya — teks lengkap “module-info.java” 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 “module-info.java”?
Deklarasikan modul. 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 1 dari 4.
Berapa lama pelajaran “module-info.java” 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
- module-info.java
- requires dan exports
- Layanan dengan provides/uses
- Migrasi ke Modul