التجميع في Java
ترجم ملفاً تعليمياً صغيراً وشغّل ملف الفئة الذي ينتجه. في Build.java أبقِ الفئة العامة Build، اطبع ok في العرض الأول، ثم اطبع ok وbuilt في العرض الثاني بعد أن تغيّر الملف وترجم مجدداً. شغّل javac Build.java ليظهر Build.class بجانب المصدر. شغّل java Build — وليس java Build.java. اترك Mini Project للصفحة التالية. هذا الدرس هو عادة الترجمة والتشغيل مع ملف .class ظاهر، وليس استدعاء مكتبة جديداً وليس ختاماً للدورة.
ترجم مرة، ثم شغّل الفئة
افتح Build.java. أبقِ اسم الفئة العامة Build. احذف عروض ملخص Recap المتبقية، ورميات Dice وRandom المتبقية، وطباعات تواريخ Stamp المتبقية، وأي Scanner للوحة المفاتيح ينتظر الكتابة. البرنامج لا ينبغي أن ينتظر إدخالاً.
داخل Build.main اطبع كلمة قصيرة واحدة:
System.out.println("ok");
من المجلد الذي يحتوي Build.java شغّل javac Build.java. عندما تتطابق الأقواس والفواصل المنقوطة، لا يكتب javac سطراً خاصاً به. يكتب Build.class بجانب المصدر. ملف .class هو ما يحمّله مشغّل Java.
ثم شغّل java Build. اترك لاحقة .java خارج أمر التشغيل. أبقِ فئة عامة واحدة بحيث يطابق الاسم Build. الشاشة تعرض ok.
public class Build {
public static void main(String[] args) {
System.out.println("ok");
}
}
امشِ التشغيل مرة واحدة. يقرأ javac ملف Build.java ويكتب Build.class. يحمّل java Build ملف Build.class، يبدأ عند Build.main، ويطبع ok. لا شيء يبني new Random(42). لا شيء يطبع ready 42 من Recap. لا شيء يجمّد يوم تقويم.
قل قاعدة المبتدئ وأنت تنظر إلى المجلد: المصدر ينتهي بـ .java، والbytecode ينتهي بـ .class، والترجمة بـ javac، والتشغيل بـ java واسم الفئة. لا تخترع Mini Project في هذه الصفحة. Mini Project ينتظر الدرس التالي. لا تكتب java Build.java — شكل التشغيل هذا خطأ على مسار هذه الدورة.
إذا ما زلت ترى ready 42 من ملف Recap متبقٍ، انتقل إلى Build.java وشغّل java Build بعد javac Build.java. إذا أبلغ javac عن خطأ، أصلح المصدر وترجم مجدداً قبل التشغيل. إذا قال التشغيل إنه لا يجد أو يحمّل الفئة الرئيسية Build، تأكد أنك في المجلد الذي يحتوي Build.class وأنك ترجمت بنجاح.
غيّر المصدر، ثم ترجم مجدداً
يثبت العرض الأول ترجمة ناجحة واحدة. يثبت العرض الثاني أن التعديلات تحتاج javac جديداً قبل أن تتغير الشاشة. أبقِ الفئة العامة نفسها Build. اطبع سطرين:
System.out.println("ok");
System.out.println("built");
احفظ الملف. شغّل javac Build.java مجدداً ليُعاد كتابة Build.class. ثم شغّل java Build. الشاشة تعرض ok، ثم built.
إذا غيّرت المصدر وتخطيت javac، قد يظل java Build يعرض ok فقط من ملف .class القديم. تلك الشاشة القديمة درس في التجميع، وليس درس Random. ترجم بعد كل تعديل تحتفظ به في هذه الصفحة.
public class Build {
public static void main(String[] args) {
System.out.println("ok");
System.out.println("built");
}
}
ترجم بـ javac Build.java وشغّل java Build مجدداً. امشِ التشغيل مرة واحدة. ملف .class الجديد يحمل سطري الطباعة. الطباعة الأولى تكتب ok. الطباعة الثانية تكتب built. لا شيء ينتظر لوحة المفاتيح. لا شيء يخزّن بذرة. لا شيء يجمع ready و42.
أبقِ العرضين كشكلين تعليميين. أولاً أثبت سطراً واحداً بعد ترجمة نظيفة. ثم أثبت سطرين بعد إعادة الترجمة. يشتركان في اسم الفئة نفسه والأمرين نفسهما. الشكل الثاني يضيف println آخر فقط.
إذا حذفت Build.class وشغّلت java Build بلا ترجمة، يفشل المشغّل لأن bytecode غير موجود. ترجم مجدداً لاستعادة Build.class. إذا تشاركت فئتان عامتان ملفاً واحداً، يشتكي javac — أبقِ Build فقط عامة في ملف التعليم.
javac مقابل java
يبدو الأمران متشابهين ويقومان بمهام مختلفة. افصل بينهما أثناء التمرين.
📊 عادات التجميع والتشغيل لـ Build
| الأمر | المهمة | فحص المبتدئ |
|---|---|---|
javac Build.java |
يقرأ المصدر، يكتب Build.class |
النجاح غالباً صامت؛ ابحث عن ملف .class |
java Build |
يحمّل Build.class ويبدأ main |
بلا لاحقة .java في هذا الأمر |
java Build.java |
شكل خاطئ لهذا الدرس | صحّح الأمر؛ لا تعامله كتشغيل التعليم |
تخطي javac بعد تعديل |
قد يعمل bytecode قديم | شاشة قديمة تعني ترجم مجدداً |
Build.class مفقود |
التشغيل لا يحمّل الفئة | شغّل javac Build.java أولاً |
التجميع ليس Summary وليس Mini Project
طلب منك Summary أن تشرح ready 42 من Recap. يطلب منك Compiling أن تراقب javac وهو يكتب bytecode وjava وهو يحمّله. سيطلب منك Mini Project أن تبني برنامجاً صغيراً خاصاً بك في الصفحة التالية. لا تخلط بين هذه المهام الثلاث في ملف مبتدئ واحد اليوم.
ok وbuilt كلمات شاشة فقط لملف التعليم هذا. ليستا وجهي نرد ولا صفاً في خريطة Summary. عندما يغيب استيراد Random في ملف Dice متبقٍ، تلك المشكلة تخص تمرين Random، وليس التجميع. عندما ما زال Recap يطبع ready 42، اترك ذلك الملف تاريخاً وأبقِ Build على الشاشة.
بلا javac، لا يوجد .class جديد لأحدث مصدر. بلا أمر java Build الصحيح، قد لا تحمّل تلك الفئة أبداً. أبقِ الخطوتين. أبقِ اسم الفئة مطابقاً للملف. أبقِ ملفات Mini Project خارج هذه الصفحة حتى ذلك الدرس.
فحوص المجلد قبل المتابعة
اعرض محتويات المجلد بعد ترجمة ناجحة. يجب أن ترى Build.java وBuild.class معاً. المصدر هو ما تعدّله. ملف الفئة هو ما تشغّله. المبتدئون أحياناً يطاردون الشاشة بينما يحررون الملف الخطأ — افتح Build.java، احفظ، ترجم، ثم شغّل.
إذا لم يجد javac ملف Build.java، تحقق من المجلد الحالي وتهجئة اسم الملف، بما في ذلك B الكبيرة. إذا لم يطبع التشغيل شيئاً، تأكد أن main ما زال يحتوي سطور println. إذا بقيت الشاشة تعرض ok فقط بعد أن أضفت built، غالباً تخطيت الترجمة الثانية.
لا تعامل Compiling كمكان لاختراع أشجار package أو تعبئة jar. تلك المواضيع تنتظر. هذه الصفحة تبقي فئة عامة واحدة، شاشتين واضحتين، وزوج javac / java.
قبل Mini Project
تستطيع أن تبقي الفئة العامة Build، تطبع ok في العرض الأول، تطبع ok ثم built في العرض الثاني، تترجم بـ javac Build.java، ترى Build.class يظهر، وتشغّل java Build بلا لاحقة .java. الجدول يفصل الترجمة عن التشغيل. الصفحة التالية هي Mini Project، حيث تبني برنامجاً صغيراً من قطع لديكها أصلاً.
أبقِ عروض Build لزوج ترجمة وتشغيل واضح. أبقِ ملفات Recap Summary خارج هذه الصفحة أثناء تمرين Compiling. أبقِ عروض نرد Random خارج هذه الصفحة أثناء تمرين Compiling. أبقِ عمل Mini Project خارج هذه الصفحة حتى ذلك الدرس. تلك العادات نقطة تفتيش قبل المتابعة. عندما تعرض الشاشة ذات السطر الواحد ok أو الشاشة ذات السطرين ok ثم built، أكمل Compiling مهمته لهذا الدرس وأنت جاهز لـ Mini Project.
مرور أخير على المجلد: فئة عامة Build واحدة، Build.class موجود بعد javac، بلا انتظار لوحة مفاتيح، بلا إجبار على استيراد Random أو LocalDate، أمر تشغيل بلا .java. شغّل javac Build.java وjava Build مرة أخرى على العرض الذي تبقيه مفتوحاً. إذا بقيت الشاشة تعرض ok أو ok ثم built، شكل Compiling متين ويمكن للدورة الانتقال إلى Mini Project في الصفحة التالية. فضّل عادة ترجمة واحدة واضحة في كل قراءة حتى يعلّم كل مرور نفس الخريطة.
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى