hm,, kesalnya..!
trial and error list :
- cek path dengan ngetik : javac/java di cmd, keluar daftar parameter hm, berarti oke-oke aja settingan path nya (ckck..).
- cek sintaks file HelloWorld.java, ga ada yang salah, 100% mirip dengan contoh dari kakaknya.
- ngetik javac HelloWorld.java, sukses, ga ada pesan eror.
- ngetik java HelloWorld , hm,,, lagi-lagi begini : NoClassDefFoundError aaaarrrrgh… (backsound mode ON)
- cek settingan path di environment variabel. hm, dah sesuai (yang bener..?) .
- close cmd, run lagi cmd..
- balik lagi ke point 1..
- infinite loop, sampe “cliing!!” hehe bunyi paan tuh.
***
ohoho… why? why? why? (suka yang tiga kali? hehe.. ) . parah uy, dah buat aplikasi yang gedean dari sekedar HelloWorld, terantuk juga di masalah dasar bgini. hehe.. tapi untunglah, sekarang jadi tau..
Sebenernya, sewaktu buat aplikasi yang gedean itu, dah sempet nemuin kasus begini. Cuma karena dibantu IDE (netbeans), ga dioprek lagi. Dan waktu itu sempet tahu juga alasannya apa, katanya Mbah Deitel (Java How to Program 5th ed, h.40)
When attempting to run a Java program, if you receive a message such as ”Exception in thread “main” java.lang.NoClassDefFoundError: Welcome1,” your CLASSPATH environment variable has not been set properly.
hm… okok. berarti yang ditulis di environment variable bukan hanya path (yang menunjuk ke \bin nya), tetapi juga CLASSPATH (yang menunjuk ke \lib nya) sekarang tinggal cari tahu, bagaimana men-set CLASSPATH dengan proper.
***
dari sini : dibilang kalo set classpath nya seperti ini :
.\;c:\program files\java\jdk1.5.0_01\lib;
bedenya yaitu tambahkan “.\” di setting classpath nya. hm,, sebenernya buat apaan ya si titik itu, apa Java sukanya sama yang ada tahi lalatnya? (xixix..)
***
oh, tentu bukan sodara-sodara. Sekarang kita lemparkan kail kita ke jaring web ini.
Classpath adalah path di mana Java Runtime Environment (JRE) mencari kelas-kelas dan file-file resource lainnya (hm,, mungkin inilah alasan kenapa dialamatinnya ke \lib, coz lib is library (of the resource files), isn’t it?).
Setting default classpath, jika kita tidak mengubahnya, adalah direktori di mana kita sekarang berada (current directory). Misalnya kita sedang di “MyDocument” (kita nyimpen file java nya di MyDocument dan mencoba me-run dari situ) berarti classpathnya merujuk ke alamatnya MyDocument.
Hm, karena itulah jika kita men-set ulang classpath untuk mengalamati resource file Java yang tertera di \lib, otomatis, si classpath akan menuju \lib nya (aja). Sedangkan file yang tadi kita buat kan ditaru di MyDocument, ya? jadilah JRE tak akan menemukannya sehingga lagi-lagi muncul pesan NoClassDefFoundError (asumsi za ini kependekan dari no class definition found (definisi kelas tak ditemukan)).
Nah, fungsi si tahi lalat titik tadi ( ”.\” ) maksudnya adalah sebagai pengalamatan untuk current directory (direktori kita sekarang, tempat nyimpen file *.java nya).
***
Oia,, ternyata kasus NoClassDefFoundError juga ditemukan jika kita mencoba mengeksekusi file berekstensi *.class. Jadi kalau mau mengeksekusi cukup tulis perintah: java HelloWorld (tanpa ekstensi class)
hm, sekian. mhon merujuk ke sumber yang lebih terpecaya, dan mohon di ralat kalo salah cz sy masih amatir ni..hehe…
semoga bermanfaaat.
:: ah.. akhirnya… ada juga tulisan tentang komputer. hehehe… : ) ::
cool..
thanx infonya zah..
hemm..
setting classpath pada user variable ga mesti dilakuin, opsional aja. cukup dengan path saja sudah cukup (thats i know). until now, ga ada tuh pesan error kayak gitu..just config your path string. thats it.
crrect me if wrong.
finally, u have post about computer.. hehe
Sebenernya kalau hanya sekedar ‘helloworld’ tidak perlu sampai menambahkan classpath di env_variables. Gak ada errornya menurut saya, tapi kalo menurut google lain ya ikuti google aja
Classpath diperlukan kalo qt ingin menggunakan library tambahan, misal jdbc. Kan kalo diunduh jdbc connector tuh berupa .jar, nah .jar itu perlu disalin ke subdirektori ‘\lib’, entah yang di jdk atau jre saya kurang inget. Abis itu alamat direktori lib itu perlu ditambahkan ke variabel classpath. Baru setelah ditambahkan, jdbc bisa di import ke source code qt tanpa nyebabin eror saat compile atau running time. Cmiiw
@Yuli : sama2..
@Syamsul: hm, iya c.kata kakak yang komen setelah Sule jg bgtu. Tapi yang kejadian di za kalo cumaa seting path aja muncul pesan bgtu. semua yang dapet jdk dari za juga kejadian kayak begitu. wah, berarti jdk nya za kali ya..hehehe…
iya… akhirnya..
@cibermen: makasih kak dah dibenerin tulisan sy… (kakak asprak ya? hehehe…)
karena jdk ya.. Hmm..kalo emang karena itu saya gak bisa nyoba2 coz versi jdk saya cuma ada yang 1.6
..btw udah dicoba belum untuk ngehapus variabel classpath-nya? setelah saya coba kayanya kalo qt enggak ngedefinisiin classpath sama sekali di env_var = ngeset variabel classpath yang minimal berisi “.\” (dua2nya gak ada masalah ngejalanin helloworld)
artinya kalo var classpath enggak didefinisiin di env_var, otomatis classpath akan menunjuk ke current_dir aja. Beda kalo qt ngedefinisiin classpath tapi gak berisi komponen “.\” (muncul pesan noClassBlaBla).
kl make IDE, kayak NETBEANS nggak perlu setting2 gituan kan….
tambahan info dikit.
———————-
kl mau add library baru, misalnya JOGL(java openGL) dll,
kl netbeans tinggal buka aja menu tools–> libraries
nanti disitu bisa nambahin library secara langsung…
nggak perlu pusing2 setting classpathnya…
*nyambung nggak sih..hehhe