Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Menjalankan Class File Java pada Direktori

Pada arikel ini akan dipelajari cara menggunakan project utilitiesclasses, dan anggotanya pada bahasa pemrograman Java. Sebelum mulainya kegiatan, terlebih dahulu pelajari beberapa keyword berikut.

Sebelum mempelajari materi tentang Cara Menjalankan Class File Java pada Direktori, terlebih dahulu pelajari materi tentang: Menghubungkan Database Java Menggunakan JDBC, Menjalankan Program Java Tanpa Method Main, dan Nama Kelas File Java dan Fungsinya.

Classpath

Classpath adalah lokasi dari JVM saat memulai eksekusi program. Sama hal nya dengan perilaku loading dinamis klasik, ketika progam Java dieksekusi JVM akan mencari dan melakukan loading classClasspath memberi tahu JVM dimana lokasi file system untuk mendefinisikan file class. Variabel dan method yang dapat diakses dan tersedia di classpath disebut sebagai variabel classpath. secara otomatis JVM selalu mengakses classpath class ketika mengeksekusi program. JVM selalu menuju bagian dalam dari classpath untuk mencari classes atau src.

JVM mencari dan melakukan loading class dalam urutan berikut ini:
  • Mencari bootstrap class: class yang fundamental bagi Java Platform (Membandingkan mana yang berfungsi lebih penting antara public class dari Java Class Library dan Private Class).
  • Mencari extension class: package yang berada pada direktori extensi dari JRE atau JDK, jre/lib/ext/ user-defined packaged, dan libraries.

Menggunakan Import Keyword

Import keyword digunakan pada Java untuk me-ngimport class dari classpath project saat ini. Import class juga bisa dilakukan dari packcages yang berbeda tetapi dari classpath yang sama. Hal yang perlu diingat bahwa package dari class dimulai dari classpath. Jika program memiliki struktur direktori seperti berikut:

a > b > c > d > class A

dan classpath dimulai dari c, maka class program harus berada pada package d bukan pada a, b, c.

Menggunakan Classpath -cp Option

Import keyword juga bisa melakukan import class dari classpath saat ini, sedangkan import classpath yang berada di luar class tidak bisa digunakan. Contoh, telah dibuat sebuah src dalam sebuah file Java yang menggunakan beberapa utility class, dimana file Java tersebut juga dibutuhkan pada pekerjaan project yang kedua. Maka pada situasi ini, import keyword tidak berfungsi lagi karena project pertama berada pada classpath yang berbeda. Untuk menyelesaikan permasalahan tersebut bisa menggunakan solusi perintah -cp ketika melakukan kompilasi dan eksekusi program.

Lanjutkan dengan contoh berikut ini. Ciptakan struktur direktori seperti diperlihatkan pada gambar 1.

Gambar 1 Menjalankan Class File pada Direktori Menggunakan Bahasa Pemrograman Java
Gambar 1 Menjalankan Class File pada Direktori Menggunakan Bahasa Pemrograman Java

Dari gambar 1 sekarang dimiliki dua buah project Java yang mengandung src dan classes. Pada direktori src, terdapat .java file yang berisi kode program, dan pada direktori classes terdapat .class file yang telah di-generate setelah proses kompilasi program dijalankan.


Baca Juga:

Berikut langkah-langkah yang dilakukan untuk menjalankan class Java yang terdapat pada direktori yang berbeda:

step 1, Ciptakan utility class: ciptakan A.java pada direktori src beserta isi kode programnya.

Contoh:

/* java utility class */

public class A

{

 

public void test()

{System.out.println("Test()"

+" method dari class A");}

 

}


step 2, Kompilasi utility class: Buka terminal (cmd pada Windows) dimana lokasi proj1 berada, dan eksekusi program dengan perintah berikut:
cp_tutorial/proj1>cd src
cp_tutorial/proj1/src>javac -d ../classes A.java

-d Option: digunakan untuk menyimpan output menuju direktori yang berbeda. Jika tidak menggunakan perintah ini (-d) maka class file akan diciptakan pada direktori src. Namun, hal tersebut merupakan hal yang baik karena dapat secara tetapmenjaga kode program dan class file terpisah setelah perintah -d menyediakan lokasi dari direktori class file untuk disimpan.

catatan: pada tahap ini, jika masih ada hasil kompilasi program yang hasilnya error, maka harus segera diselesaikan terlebih dahulu.

step 3, Perika apakah A.java telah berhasil dikompilasi: periksa pada bagian direktori class proj1 apakah class file telah diciptakan atau belum. Biasanya proses tersebut telah diciptakan jika kompilasi program telah berjalan dengan sukses.

step 4, Buat class main dan lakukan kompilasi: Selanjutnya pindah kebagian direktori proj2. Pada bagian ini juga terdapat dua direktori untuk alasan yang sama seperti sebelumnya. Ciptakan MainClass.java pada direktori src seperti kode program berikut dan lakukan kompilasi program setelahnya.

Contoh:

/* Java class melakukan eksekusi program program Java*/

 

public class MainClass{

public static void main(String[] args)

{

System.out.println("In main"

+" class");

A a1 = new A();

a1.test();

}

 

}

Output:
cp_tutorial/proj2>cd src
cp_tutorial/proj2/src>javac -d ../classes MainClass.java
MainClass.java:4: error: cannot find symbol
                A a1 = new A();
                ^
symbol:   class A
location: class MainClass
MainClass.java:4: error: cannot find symbol
                A a1 = new A();
                           ^
symbol:   class A
location: class MainClass
2 errors

Seperti yang diperhatikan pada hasil sebelumnya, kompilasi memberikan error pada hasil akhir program karena simbol A tidak ditemukan pada project. Jika ingin menggunakan classes A dari proj1 maka dapat menggunakan perintah -cp option untuk memasukkan kode program proj1 seperti diperlihatkan pada step 5.

Step 5, Kompilasi dengan perintah -cp option:
cp_tutorial/proj2>cd src
cp_tutorial/proj2/src>javac -d ../classes -cp 
../../proj1/classes MainClass.java

Sekarang kode program dapat dikompilasi dengan sukses dan MainClass.class dapat diciptakandalam direktori classes yang terdapat pada classpath dan didalamnya juga terdapat path (jalur) yang diberikan beserta classpath saat ini, dan ketika JVM sudah menemukan simbol A dalam class, maka proses kompilasi program berjalan sukses.

Step 6, Eksekusi program: Coba lakukan eksekusi program berikut dengan mengikuti perintah (command) yang telah diberikan berikut ini:
cp_tutorial/proj2/src>cd ../classes
cp_tutorial/proj2/classes>java MainClass
Exception in thread "main" java.lang.NoClassDefFoundError: A
        at MainClass.main(MainClass.java:4)
Caused by: java.lang.ClassNotFoundException: A
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 1 more

Setelah program dijalankan ternyata masih didapati pesan error, hal ini karena JVM memberitahukan A path hanya pada waktu kompilasi saja. Ketika MainClasss dieksekusi, class tersebut tidak mengetahui bahwa ada class A lain pada project lainnya pula.

Step 7, Eksekusi program menggunakan -cp option) Siapkan kembali path dari class A.
cp_tutorial/proj2/classes>java -cp ../../proj1/classes; MainClass
In main class
Test() method of class A

Sekarang program telah berhasil dijalankan.

Catatan: Jangan lupa menambahkan simbol semicolon (;) pada bagian akhir dari path yang telah dibuat.

Cara Menjalankan Program Java Dengan Jar pada Classpath

Program juga bisa menggunakan jar file sebagai pengganti dari class file pada classpath yang berbeda. Tahapan proses yang dilakukan adalah sama dengan mengganti folder menggunakan jar dan class name menggunakan jar name. Ibarkatkan telah dimiliki sebuah direktori jar file lib, setelah itu lakukan kompilasi program dengan perintah eksekusi berikut:
cp_tutorial/proj2/src>javac -d ../classes -cp ../../proj1/lib MainClass.java

Kemudian lakukan eksekusi program berikut ini:
cp_tutorial/proj2/classes>java -cp ../../proj1/lib; MainClass

5 komentar untuk "Cara Menjalankan Class File Java pada Direktori"

  1. Apa fungsi dari class file pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Classa file pada bahasa Pemrograman Java adalah format yang ditentukan secara tepat untuk bahasa pemrograman Java yang akan dikompilasi. Kode sumber program Java dikompilasi menjadi class file yang dapat dimuat dan dijalankan oleh JVM apapun pada program Java. Class file mungkin berjalan melintasi jaringan sebelum dimuat oleh JVM.

      Hapus
  2. Setiap kali sesorang programmer menulis program dalam bahasa pemrograman Java, maka file .java kemudian akan dikompilasi oleh kompilator, dimana kompilator akan mengambil kode sumber yang telah dibuat dan kemudian akan mengubahnya menjadi class file yang dapat dijalankan pada JVM.

    Hal ini menjelaskan bahwa Java dapat dijalankan pada OS apapun selama OS tersebut menggunakan JVM.

    BalasHapus
  3. Apa yang dimaksud dengan utility class atau utilitas pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Utility class, atau juga disebuat sebagai helper class, merupakan class yang terdapat pada bahasa pemrograman Java, yang hanya berisi method static, tanpu disertai status apapun, dan tidak dapat menbuat instance apapun. Class ini berisi banyak method-method terkait, sehingga dapat digunakan kembali pada seluruh aplikasi atau program.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -