Java LogNotes edisi ke1, 17 Juni 2009
Penulis : M. Ghazali a.k.a. ghaNOZ 2480 Penerbit : TheONEmAn2480 Tahun Terbit : 2009
Kontak saya di:
[email protected] [email protected] Atau kunjungi: http://ghanoz2480.wordpress.com
1
Java LogNotes edisi ke1, 17 Juni 2009
“Bermasalah” dengan classpath Bagian1
Pendahuluan Suatu hari saya sedang mempelajari sebuah tool yang digunakan untuk logging yaitu log4j. Tetapi pada catatan ini saya tidak akan membahas tool tersebut, melainkan sebuah masalah yang berhubungan dengan classpath.
Apa masalah yang saya dihadapi? Saya mencoba contoh program yang disediakan oleh tool (log4j) tersebut untuk bagaimana tool tersebut digunakan. Bila Anda ingin tahu berikut adalah contoh program yang saya coba: import org.apache.log4j.Logger; import org.apache.log4j.BasicConfigurator; public class Hello { private static final Logger logger = Logger.getLogger(Hello.class); public static void main(String argv[]) { BasicConfigurator.configure(); logger.debug("Hello world."); logger.info("What a beatiful day."); } }
2
Java LogNotes edisi ke1, 17 Juni 2009 Karena program tersebut membutuhkan library dari tool tersebut maka saya tambahkan path (letak) dari paket jar library tersebut ke classpath.
Gambar 1: current classpath
Oke, selanjutnya saya compile program tersebut dan hasilnya tidak ada masalah. Setelah itu saya coba jalankan program Hello tersebut dan inilah yang saya dapatkan.
Gambar 2: Mencoba menjalankan program Hello
Bagaimana saya mengatasi masalah ini? Karena java1 tidak mengetahui dimana file Hello.class berada, saya harus menimpa (override) classpath yang ada dengan menggunakan option cp (dari java) untuk mengarahkannya ke direktori dimana file Hello.class saya berada. Karena saya menjalankan program tersebut pada direktori dimana file Hello.class tersebut berada maka saya tidak perlu mengetikkan fullpath direktori (D:\RZA\Exp\Java) file Hello.class berada cukup dengan menambahkan argumen '.' (current directory) pada option -cp tersebut. Lihat gambar di bawah ini agar lebih jelas mengenai apa yang saya maksud.
Gambar 3a: Menggunakan option cp
3
Java LogNotes edisi ke1, 17 Juni 2009 Oke selanjutnya saya jalankan program tersebut dan inilah yang saya dapatkan.
Gambar 3b: Mencoba menjalankan program Hello dengan option cp
Hasil yang didapatkan (pada Gambar 3b) terjadi karena default classpath yang sudah saya set sebelumnya (lihat Gambar 1) saya timpa dengan path yang mengarah pada direktori dari Hello.class berada. Bagaimana untuk mengatasi masalah sederhana seperti ini? Jadi pada saat menggunakan option cp tersebut saya tambahkan variabel environment classpath tersebut sebagai argumen diikuti tanda pemisah (';')2 lalu full path dari direktori dimana Hello.class berada atau '.' (berarti current directory).
Gambar 3c: Mencoba menjalankan program Hello dengan option cp
Sekarang saya coba jalankan kembali program tersebut dengan option tersebut dan hasilnya:
Wow, berhasil!
4
Java LogNotes edisi ke1, 17 Juni 2009 Keterangan: [1] java – java digunakan untuk melaunch aplikasi Java. [2] Pada sistem operasi Windows gunakan ';' untuk memisahkan antar path sedangkan pada sistem operasi Unix based gunakan ':'
5