تثبيت Java وبرنامجك الأول
تثبيت Java وبرنامجك الأول
في الدرس السابق تعرّفتَ على ماهية Java وكيف تعمل JVM. حان الآن وقت تشغيل Java على جهازك وكتابة أوّل برنامج لك. بنهاية هذا الدرس سيكون JDK مثبّتًا لديك، وستفهم الفرق بين javac وjava، وستعرف ما يعنيه كل سطر في كلاس Hello World.
تثبيت JDK
تحتاج برامج Java إلى JDK (Java Development Kit) لتُصرَّف وتُشغَّل. توجد عدة توزيعات؛ الأكثر استخدامًا:
- Oracle JDK — الإصدار الرسمي من Oracle. مجاني للتطوير؛ يستلزم ترخيصًا للاستخدام التجاري في الإنتاج بما يتجاوز Java 17.
- OpenJDK — التطبيق المرجعي مفتوح المصدر بالكامل. مجاني لجميع الاستخدامات. تشحنه معظم توزيعات Linux عبر مديري الحزم.
- Eclipse Temurin (Adoptium) — توزيعة OpenJDK مبنيّة من قِبل المجتمع، يُنصح بها بشدة للمبتدئين والمحترفين على حدٍّ سواء.
خطوات التثبيت:
- اذهب إلى adoptium.net (Eclipse Temurin) وحمّل مثبّت JDK 21 لنظام تشغيلك.
- شغّل المثبّت وقبل الإعدادات الافتراضية. على Windows، ضع علامة على خيار تعيين JAVA_HOME وإضافة Java إلى PATH.
- افتح الطرفية (Command Prompt أو PowerShell على Windows، Terminal على macOS/Linux) وتحقّق من التثبيت:
يجب أن ترى مخرجات مشابهة لما يلي:
javac مقابل java — أداتان منفصلتان
يأتي JDK مع برنامجَين في سطر الأوامر ستستخدمهما باستمرار:
javac— مُصرِّف Java. يقرأ ملفات المصدر.javaوينتج ملفات.classتحتوي على bytecode.java— مُشغِّل Java. يُطلق JVM ويُشغِّل ملف.classالمُصرَّف (أو أرشيف JAR).
سير العمل دائمًا: اكتب → صرِّف بـ javac → شغِّل بـ java. هذه الخطوتان هما ما يتيح تشغيل نفس الـ bytecode على أي نظام تشغيل مثبَّت فيه JVM.
كتابة برنامجك الأول
أنشئ ملفًا جديدًا اسمه HelloWorld.java واكتب فيه ما يلي بالضبط:
HelloWorld، يجب حفظ الملف باسم HelloWorld.java. أي تعارض يُسبّب خطأ في المُصرِّف.
تشريح دالة main()
لنُفكّك كل كلمة مفتاحية في سطر main، إذ كل منها ضرورية:
public— يجب أن يتمكّن مُشغِّل JVM من استدعاء هذه الدالة من خارج الكلاس، لذا يجب أن تكون public.static— تستدعي JVM الدالةmainقبل وجود أي كائنات.staticتعني أن الدالة تنتمي للكلاس نفسه لا لنسخة منه.void—mainلا تُعيد قيمة إلى JVM.main— الاسم الذي تبحث عنه JVM تحديدًا كنقطة دخول لكل برنامج Java.String[] args— مصفوفة من قيمStringتُمرَّر من سطر الأوامر. يمكنك تجاهلها الآن، لكن يجب أن يتضمّنها التوقيع.
داخل main، تطبع System.out.println(...) سطرًا من النص على الطرفية. System كلاس مدمج، out حقل static من نوع PrintStream، وprintln دالة تطبع المعامل متبوعًا بسطر جديد.
التصريف والتشغيل
افتح طرفيتك، انتقل إلى المجلد الذي حفظت فيه HelloWorld.java، ونفّذ هذين الأمرين:
يجب أن ترى:
java HelloWorld.java. هذا مفيد للتجارب السريعة، لكن JVM لا تزال تُصرِّف إلى bytecode داخليًا — تفعل ذلك في الذاكرة فحسب. لأي مشروع حقيقي، استخدم javac صراحةً دائمًا.
ما يحدث خطوة بخطوة
javac HelloWorld.javaيقرأ المصدر ويتحقّق من الأخطاء النحوية ويكتبHelloWorld.class(bytecode).java HelloWorldيُطلق JVM ويحمّلHelloWorld.classويجد دالةpublic static void main(String[] args)ويستدعيها.- مُصرِّف JIT داخل JVM يحوّل أكثر bytecode استخدامًا إلى تعليمات آلية أصيلة أثناء التنفيذ لتحسين الأداء.
- تكتب
System.out.printlnعلى المخرجات القياسية وترى النص في طرفيتك.
بيئات التطوير المتكاملة الموصى بها
بينما يمكنك كتابة Java في أي محرر نصي، فإن بيئة التطوير المتكاملة (IDE) تجعل التطوير أسرع بكثير. أبرز الخيارات:
- IntelliJ IDEA Community Edition — مجانية، وتُعدّ من أفضل بيئات تطوير Java. تُكمل الكود تلقائيًا وتُبرز الأخطاء فور ظهورها وتُشغّل برنامجك بنقرة واحدة.
- VS Code + Extension Pack for Java — بديل خفيف الوزن إن كنت تفضّل VS Code.
كلا الخيارين يكتشفان JDK المثبَّت تلقائيًا. من الآن فصاعدًا، تفترض الدروس استخدامك للطرفية أو بيئة تطوير متكاملة — كلا المنهجين يعمل بشكل متطابق.
الخلاصة
ثبّتَ JDK وتحقّقت من عمله بـ java -version، وتعلّمت أن javac يُصرِّف وjava يُشغِّل، وكتبتَ كلاس HelloWorld، وفكّكتَ كل كلمة مفتاحية في توقيع دالة main. سير عمل التصريف ثم التشغيل هذا هو أساس كل ما ستفعله في Java.