Javada java.lang.NoClassDefFoundError xatosini to‘g‘irlash
Savol:
Muxtaram dasturchilar! Men Java OOP ni endi o`rganishni boshlayotgandim (videodars orqali), shunga ko`ra MyFirst.java ni quyidagi kodni yozib yaratdim:
class MyFirst{ public static void main (String[] args){ System.out.println(«Hello world»); } }
Shuni command oynasida compile qildim:
javac MyFirst.java
kompilyatsiyada muammo yo`q, lekin dasturni ishga tushirsam quyidagicha yozuvlar chiqayapti:
Javob:
To’gri, bu holatda class kopmpilatsiyadan o’tsa ham shunday xatolik sodir bo’lishi mumkin. Bunga sabab Java Virtual Mashinasi ko’rsatilgan kompilatsiyadan o’tgan klassni yurgizdirishga harakat qilayotib topa olmayapti. Ya’ni u klassni ‘classpath‘ deb ataluvchi qisimdan qidiradi. Bu yerda sizga kerakli narsa shuki JVM ga siz ishlab turgan joy(ya’ni class faylingiz turgan papka) ham classpath ekanini tushuntirishdir.
java MyFirst-cp .
bu kommanda siz yurgizdirayotganingizda klass turgan papkani ‘classpath’ sifatida oladi va MyFirst ni aynan shu papkadan qidiradi.
Yoki har doim aynan shu komandani yozish o’rniga siz ham java klasslaringiz turgan papkangizni ‘classpath’ ga qo’shib qo’ying buning uchun «cmd» buyrug’i orqali ochilgan oynadan java klasslaringiz turgan manzilga «cd» buyrug’i orqali o’ting va o’sh yerdan:
set classpath=%classpath%;.;
commandasini yurgizdiring. Va qolgan hollarda odatdagidek
java MyFirst
deb chaqirsangiz ham bo’ladi. Manba:
Umumiy Dasturlash
Javada java.lang.NoClassDefFoundError xatosini to‘g‘irlash