Bagaimana cara kerja ClassLoader di Java?

Posted on

Saat Anda membuat objek di Java, Java Virtual Machine (JVM) memuat file kelas yang terkait dengan objek tersebut ke dalam memori. JVM mencari metode dengan nama yang sama dengan file kelas dan memanggil metode itu. Jika tidak ada metode dengan nama itu, JVM mencari konstruktor di file kelas. Ketika menemukan konstruktor, ia memanggil konstruktor dengan argumen kelas.

judul: Cara menggunakan Maven di 2019
Pendahuluan: Jika Anda seperti kebanyakan pengembang, Anda mungkin menggunakan beberapa bahasa pemrograman dan alat yang berbeda untuk membangun aplikasi Anda. Tetapi bagaimana jika Anda ingin menggunakan seperangkat alat yang sama untuk membangun berbagai jenis aplikasi? Di situlah Maven masuk. Maven adalah alat build yang dapat digunakan untuk mengkompilasi Java, JavaScript, dan bahasa lain ke dalam file yang dapat dieksekusi.

Apa itu ClassLoader dan bagaimana cara kerjanya di Java?

ClassLoaders adalah mekanisme di Java untuk memuat kelas dari lokasi tertentu. Saat Anda membuat kelas Java baru, kompiler Java secara otomatis membuat file kelas yang menyertakan semua kode untuk kelas tersebut. File kelas disimpan di lokasi tertentu di komputer Anda, biasanya di folder bernama “kelas” di sebelah folder program Java utama Anda. (Pada Windows, file kelas biasanya terletak di C:\Program Files\Java\jdk1.6.0_03\lib.)

Untuk menggunakan kelas dari direktori kelas, Anda harus terlebih dahulu memuatnya ke dalam memori. Untuk melakukannya, Anda menggunakan objek ClassLoader yang terkait dengan program Java utama. Objek ini memiliki dua metode utama: getClass dan setClass. Metode getClass mengembalikan nama file kelas yang sesuai dengan nama yang diberikan. Metode setClass menetapkan nama file kelas saat ini menjadi nilai string yang diberikan.

Secara umum, Anda harus menggunakan setClass kapan pun Anda ingin mengubah nama atau konten file kelas Anda saat ini. Misalnya, jika Anda sedang menulis program yang menyimpan data dalam file teks, Anda mungkin ingin mengubah nama file kelas Anda sehingga mengarah ke file teks baru.

Anda juga dapat menggunakan objek ClassLoader untuk memuat kelas dari lokasi lain. Misalnya, Anda mungkin ingin memuat kelas dari server jaringan. Untuk melakukan ini, Anda harus terlebih dahulu menentukan URL file kelas. Kemudian Anda menggunakan metode setClass untuk menetapkan nama file kelas saat ini menjadi nilai string yang diberikan.

Kapan menggunakan ClassLoader dan kapan tidak menggunakannya?

ClassLoader adalah alat Java penting yang dapat digunakan dalam sejumlah skenario. Namun, penting untuk mengetahui kapan harus menggunakan ClassLoader dan kapan tidak menggunakannya untuk menghindari jebakan umum. Dalam posting blog ini, kita akan membahas beberapa alasan mengapa Anda mungkin ingin menggunakan ClassLoader dan kapan Anda mungkin ingin menghindari menggunakannya.

Internal ClassLoader

Pemuat kelas Java bekerja dengan cara yang sangat spesifik. Mereka menyediakan antarmuka ke sistem operasi, dan mereka mengabstraksikan detail tentang bagaimana file dimuat. Ini berarti Anda dapat menggunakan pemuat kelas dari satu aplikasi di platform lain tanpa harus khawatir tentang cara kerja sistem file pada platform tersebut secara spesifik.

Sebagian besar pemuat kelas Java menggunakan rantai kepercayaan. Pemuat kelas pertama dalam rantai dipercaya untuk memuat kelas dari lingkungan global. Setiap pemuat kelas berikutnya hanya dipercaya jika mereka ditetapkan sebagai bagian dari jalur kelas awal. Misalnya, jika Anda menggunakan pemuat kelas dari aplikasi yang dikompilasi untuk Windows, maka Anda juga tidak dapat menggunakan pemuat kelas dari aplikasi yang dikompilasi untuk Linux menggunakan kumpulan kelas yang sama.

Penggunaan lanjutan ClassLoader di Java

Dalam posting blog ini, kita akan mengeksplorasi penggunaan lanjutan ClassLoader di Java. Seperti yang kita semua tahu, ClassLoader adalah alat yang membantu kita memuat kelas dari paket yang berbeda. Dalam posting blog ini, kita akan melihat lebih banyak cara menarik ClassLoader dapat digunakan dalam aplikasi kita.

Mari kita mulai dengan sebuah contoh. Misalkan kita memiliki aplikasi yang perlu memuat tiga kelas berbeda: A, B, dan C. Kita dapat membuat file kelas untuk masing-masing kelas ini dan meletakkannya di direktori yang sama. Namun, ini akan menghasilkan tiga file kelas (A.java, B.java dan C.java) di direktori yang sama, yang bukan yang kita inginkan. Solusinya adalah dengan menggunakan kelas ClassLoader untuk memuat kelas dari paket yang berbeda.

Pertama, kita perlu membuat objek ClassLoader:

ClassLoader cl = new ClassLoader(“com/mycompany/class1”);

Selanjutnya, kita perlu memberi tahu ClassLoader di mana kelas untuk aplikasi kita berada:

cl.setResource(“com/mycompany/class1”, “C:/myclasses/class1.jar”);

Akhirnya, kita dapat menggunakan ClassLoader untuk memuat tiga kelas yang kita inginkan:

cl.loadClass(“com/mycompany/class1.A”);

cl.loadClass(“com/mycompany/class1.B”);

cl.loadClass(“com/mycompany/class1.C”);

× Penutup! Postingan "Bagaimana cara kerja ClassLoader di Java?" ini diharapkan bisa membantu Anda yang tengah mencari jawaban topik Bagaimana cara kerja ClassLoader di Java? ini. Jika Anda menemukan ada kesalahan dalam informasi yang diberikan, harap gunakan fitur laporkan konten agar informasi tentang Bagaimana cara kerja ClassLoader di Java? yang disajikan menjadi lebih akurat.