أساسيات جافا

تثبيت Java وبرنامجك الأول

15 دقيقة الدرس 2 من 14

تثبيت 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 مبنيّة من قِبل المجتمع، يُنصح بها بشدة للمبتدئين والمحترفين على حدٍّ سواء.
أيّ إصدار يجب تثبيته؟ دائمًا اختر أحدث إصدار LTS (دعم طويل الأمد). وقت كتابة هذا الدرس هو Java 21. تتلقى إصدارات LTS تحديثات أمنية وإصلاحات أخطاء لسنوات، مما يجعلها آمنة للتعلّم والإنتاج على حدٍّ سواء.

خطوات التثبيت:

  1. اذهب إلى adoptium.net (Eclipse Temurin) وحمّل مثبّت JDK 21 لنظام تشغيلك.
  2. شغّل المثبّت وقبل الإعدادات الافتراضية. على Windows، ضع علامة على خيار تعيين JAVA_HOME وإضافة Java إلى PATH.
  3. افتح الطرفية (Command Prompt أو PowerShell على Windows، Terminal على macOS/Linux) وتحقّق من التثبيت:
java -version

يجب أن ترى مخرجات مشابهة لما يلي:

openjdk version "21.0.3" 2024-04-16 OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9) OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9, mixed mode, sharing)
ما هو JAVA_HOME؟ إنه متغيّر بيئة يشير إلى مجلد تثبيت JDK. تبحث عنه أدوات كثيرة — أنظمة البناء مثل Maven وGradle، وبيئات التطوير، وخوادم CI — لتحديد موقع JDK. تعيينه أثناء التثبيت يجنّبك مشاكل لاحقة.

javac مقابل java — أداتان منفصلتان

يأتي JDK مع برنامجَين في سطر الأوامر ستستخدمهما باستمرار:

  • javacمُصرِّف Java. يقرأ ملفات المصدر .java وينتج ملفات .class تحتوي على bytecode.
  • javaمُشغِّل Java. يُطلق JVM ويُشغِّل ملف .class المُصرَّف (أو أرشيف JAR).

سير العمل دائمًا: اكتب → صرِّف بـ javac → شغِّل بـ java. هذه الخطوتان هما ما يتيح تشغيل نفس الـ bytecode على أي نظام تشغيل مثبَّت فيه JVM.

كتابة برنامجك الأول

أنشئ ملفًا جديدًا اسمه HelloWorld.java واكتب فيه ما يلي بالضبط:

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
يجب أن يطابق اسم الملف اسم الكلاس تمامًا، بما في ذلك حالة الأحرف. إن كان كلاسك يُسمّى HelloWorld، يجب حفظ الملف باسم HelloWorld.java. أي تعارض يُسبّب خطأ في المُصرِّف.

تشريح دالة main()

لنُفكّك كل كلمة مفتاحية في سطر main، إذ كل منها ضرورية:

  • public — يجب أن يتمكّن مُشغِّل JVM من استدعاء هذه الدالة من خارج الكلاس، لذا يجب أن تكون public.
  • static — تستدعي JVM الدالة main قبل وجود أي كائنات. static تعني أن الدالة تنتمي للكلاس نفسه لا لنسخة منه.
  • voidmain لا تُعيد قيمة إلى JVM.
  • main — الاسم الذي تبحث عنه JVM تحديدًا كنقطة دخول لكل برنامج Java.
  • String[] args — مصفوفة من قيم String تُمرَّر من سطر الأوامر. يمكنك تجاهلها الآن، لكن يجب أن يتضمّنها التوقيع.

داخل main، تطبع System.out.println(...) سطرًا من النص على الطرفية. System كلاس مدمج، out حقل static من نوع PrintStream، وprintln دالة تطبع المعامل متبوعًا بسطر جديد.

التصريف والتشغيل

افتح طرفيتك، انتقل إلى المجلد الذي حفظت فيه HelloWorld.java، ونفّذ هذين الأمرين:

# الخطوة 1 — التصريف: ينتج HelloWorld.class في نفس المجلد javac HelloWorld.java # الخطوة 2 — التشغيل: لاحظ عدم وجود امتداد .class ولا مسار ملف، فقط اسم الكلاس java HelloWorld

يجب أن ترى:

Hello, World!
اختصار الملف الواحد في Java 11+: لملف يحتوي كلاسًا واحدًا فقط يمكنك تخطّي خطوة التصريف وتشغيله مباشرة بـ java HelloWorld.java. هذا مفيد للتجارب السريعة، لكن JVM لا تزال تُصرِّف إلى bytecode داخليًا — تفعل ذلك في الذاكرة فحسب. لأي مشروع حقيقي، استخدم javac صراحةً دائمًا.

ما يحدث خطوة بخطوة

  1. javac HelloWorld.java يقرأ المصدر ويتحقّق من الأخطاء النحوية ويكتب HelloWorld.class (bytecode).
  2. java HelloWorld يُطلق JVM ويحمّل HelloWorld.class ويجد دالة public static void main(String[] args) ويستدعيها.
  3. مُصرِّف JIT داخل JVM يحوّل أكثر bytecode استخدامًا إلى تعليمات آلية أصيلة أثناء التنفيذ لتحسين الأداء.
  4. تكتب 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.