JVM yozgan kodingni to'g'ridan-to'g'ri ishga tushira olmaydi. U faqat bayt-kod bilan yozilgan dasturlarni bajarishi mumkin. Bayt-kod — bu past darajadagi til, mashina kodiga yaqin.
Java'da kompilyatsiya — bu Java'da yozilgan dastur (yuqori daraja) bayt-kod bilan yozilgan xuddi shu dasturni tarjima qilishdir.
Koding .java kengaytmasi bo'lgan faylda kompilyatorga uzatiladi va agar kodda xatolar bo'lmasa, kompilyatsiyadan so'ng yangi fayl bayt-kod bilan olinadi. Faylning nomi o'sha qoladi, lekin kengaytmasi: .class. Agar kodda xatolar bo'lsa, demak "dastur kompilyatsiya qilmadi". Unda xato xabarlarini o'qib, ularni tuzatish kerak.
Kompilyator JDK (Java Development Kit) ga kiruvchi javac buyrug'i shaklida namoyon bo'ladi. Masalan, agar faqat JRE (Java Runtime Environment) o'rnatilsa, unda kompilyator bo'lmaydi! Faqat bayt-kod ishlata oladigan JVM bo'ladi. Shuning uchun JDK ni o'rnatamiz va kompilyatorga bizning .java faylimizni uzatamiz.
Misol uchun konsolda chiqarish qiladigan oddiy dastur olamiz:
class MySolution {
public static void main(String[] args) {
System.out.println("Salom, buyruq satri!");
}
}
Bu kodni D:/temp/MySolution.java fayliga saqlaymiz.
Kodimizni quyidagi buyruq yordamida kompilyatsiya qilamiz
D:\temp>javac MySolution.java
Agar kodda kompilyatsiya xatolari bo'lmasa, temp papkasida MySolution.class fayli hosil bo'ladi. Bu vaqtda, MySolution.java fayli joyida qoladi. Lekin, MySolution.class allaqachon bayt-kod bilan tayyor va to'g'ridan-to'g'ri JVM yordamida ishga tushirilishi mumkin.
Bizning misolimiz juda oddiy, lekin javac buyrug'i ham eng katta va murakkab loyihalarda ishlatiladi. Shuning uchun uning ishlash prinsiplarini bilish juda foydali.
Birdan ortiq classlarni ham bir marta kompilyatsiya qilish mumkin. Masalan, temp papkasida yana bir Cat.java fayli bor deylik:
D:\temp>javac MySolution.java Cat.java
yoki:
D:\temp>javac *.java
Kompilyatsiyadan so'ng .class fayllarni turli kompyuterlarda osongina ko'chirish va ishga tushirish uchun jar faylga o'rab qo'yish mumkin. jar fayl yaratish uchun buyrug'ning namunasi:
D:\temp>jar cvfe myjar.jar MySolution MySolution.class Cat.class
qayerda:
jar – .jar fayllarni yaratish uchun buyruq, JDK tarkibiga kiradi;
cvfe – bayroqlar, mana ular ma'nolari:
с – yangi jar fayl yaratilsin;
v – buyruq bajarilishi jarayonida qo'shimcha ma'lumotni chiqarish;
f – myjar.jar bilan birgalikda qaysi nomli faylni natijada olishimizni bildiradi;
e – MySolution bilan birgalikda main metodini o‘z ichiga olgan classni ko‘rsatadi;
MySolution.class Cat.class – jar fayliga o'ralish kerak bo'lgan fayllar nomlari probel bilan ajratilgan.
Olingan jar faylni ishga tushirish:
D:\temp>java -jar myjar.jar
| Batafsil tanishish uchun: |
|---|
|
GO TO FULL VERSION