TP1.1 — تثبيت Java JDK 17
الأهداف
هذا العمل العملي سيمكنك من:
- تثبيت JDK 17 (مجموعة تطوير جافا) على نظام التشغيل الخاص بك
- تكوين متغيرات البيئة (
JAVA_HOME,PATH) - التحقق من التثبيت باستخدام الأوامر
java,javacوwhich java - فهم الفرق بين JDK وJRE والتوزيعات المختلفة
المدة المقدرة: 20-30 دقيقة
لماذا Java 17؟
| السبب | التفاصيل |
|---|---|
| LTS (دعم طويل الأمد) | دعم طويل الأمد من قبل Oracle والمجتمع (حتى 2029+) |
| Spring Boot 3.x | الإصدار الأدنى المطلوب من Spring Boot 3 |
| ميزات حديثة | سجلات، فئات مختومة، مطابقة الأنماط، كتل نصية |
| الاستقرار | إصدار مثبت في الإنتاج منذ 2021 |
- Eclipse Temurin (Adoptium) — موصى به، مجاني، مفتوح المصدر
- Oracle JDK — مجاني للتطوير، ترخيص تجاري في الإنتاج
- Amazon Corretto — مجاني، مدعوم من Amazon
- Azul Zulu — مجاني، معتمد
نوصي بـ Eclipse Temurin لهذا الدورة.
التثبيت على Windows
🪟 انقر هنا للتثبيت على Windows (الطريقة الرسومية)
الخطوة 1: تنزيل JDK 17
- اذهب إلى https://adoptium.net/
- اختر:
- نظام التشغيل: Windows
- المعمارية: x64
- نوع الحزمة: JDK
- الإصدار: 17 (LTS)
- انقر على "Latest LTS Release" لتنزيل الملف
.msi
الخطوة 2: تثبيت JDK
- انقر نقرًا مزدوجًا على الملف
.msiالذي تم تنزيله - اتبع معالج التثبيت
- مهم: أثناء التثبيت، حدد هذه الخيارات:
- ✅ Add to PATH
- ✅ Set JAVA_HOME variable
- ✅ Associate .jar files
┌──────────────────────────────────────┐
│ Eclipse Temurin JDK 17 Setup │
│ │
│ ✅ Add to PATH │
│ ✅ Set JAVA_HOME variable │
│ ✅ Associate .jar │
│ │
│ Install to: C:\Program Files\ │
│ Eclipse Adoptium\jdk-17.0.x.x\ │
│ │
│ [Install] │
└──────────────────────────────────────┘
الخطوة 3: التحقق من التثبيت
أغلق جميع النوافذ المفتوحة، ثم افتح PowerShell أو CMD جديد:
java -version
النتيجة المتوقعة:
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
javac -version
النتيجة المتوقعة:
javac 17.0.13
الخطوة 4: التحقق من JAVA_HOME
$env:JAVA_HOME
النتيجة المتوقعة:
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
where.exe java
النتيجة المتوقعة:
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot\bin\java.exe
إذا لم يتم تعيين JAVA_HOME تلقائيًا
- قائمة ابدأ → اكتب "متغيرات البيئة"
- انقر على "تعديل متغيرات البيئة للنظام"
- انقر على "متغيرات البيئة..."
- في متغيرات النظام، انقر على جديد:
- الاسم:
JAVA_HOME - القيمة:
C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
- الاسم:
- ابحث عن المتغير
Path→ تعديل → جديد:%JAVA_HOME%\bin
- موافق في كل مكان → إعادة تشغيل الطرفية
🪟 التثبيت على Windows باستخدام Chocolatey (بديل سريع)
إذا كان لديك Chocolatey مثبتًا:
choco install temurin17
التحقق:
java -version
javac -version
$env:JAVA_HOME
where.exe java
يقوم Chocolatey بتكوين JAVA_HOME و PATH تلقائيًا.
🪟 التثبيت على Windows باستخدام Scoop (بديل سريع)
إذا كان لديك Scoop مثبتًا:
scoop bucket add java
scoop install temurin17-jdk
التحقق:
java -version
javac -version
$env:JAVA_HOME
where.exe java
التثبيت على macOS
🍎 التثبيت على macOS باستخدام Homebrew (موصى به)
الخطوة 1: تثبيت Homebrew (إذا لم يكن مثبتًا بالفعل)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
الخطوة 2: تثبيت JDK 17
brew install --cask temurin@17
الخطوة 3: التحقق من التثبيت
java -version
النتيجة المتوقعة:
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode)
javac -version
النتيجة المتوقعة:
javac 17.0.13
الخطوة 4: التحقق من المسار وJAVA_HOME
which java
النتيجة المتوقعة:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java
/usr/libexec/java_home -v 17
النتيجة المتوقعة:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
الخطوة 5: تكوين JAVA_HOME (دائم)
افتح ملف تعريف shell الخاص بك:
nano ~/.zshrc
أضف في النهاية:
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH
أعد التحميل:
source ~/.zshrc
تحقق:
echo $JAVA_HOME
النتيجة المتوقعة:
/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
🍎 التثبيت على macOS باستخدام SDKMAN! (بديل)
تثبيت SDKMAN!
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
عرض إصدارات Java 17 المتاحة
sdk list java | grep tem
النتيجة (مثال):
Temurin | | 17.0.13 | tem | installed | 17.0.13-tem
التثبيت
sdk install java 17.0.13-tem
التحقق
java -version
which java
echo $JAVA_HOME
يسمح بتثبيت عدة إصدارات من Java والتبديل بسهولة:
sdk use java 17.0.13-tem # استخدام Java 17
sdk use java 21.0.5-tem # التبديل إلى Java 21
sdk default java 17.0.13-tem # تعيين Java 17 كإعداد افتراضي
🍎 التثبيت على macOS يدويًا (تنزيل مباشر)
الخطوة 1: تنزيل
- اذهب إلى https://adoptium.net/
- اختر macOS → aarch64 (Apple Silicon M1/M2/M3) أو x64 (Intel)
- قم بتنزيل الملف
.pkg
الخطوة 2: التثبيت
انقر نقرًا مزدوجًا على الملف .pkg واتبع المعالج.
الخطوة 3: تكوين JAVA_HOME
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
الخطوة 4: التحقق
java -version
javac -version
which java
echo $JAVA_HOME
التثبيت على Linux
🐧 Ubuntu / Debian (apt)
الخطوة 1: تحديث الحزم
sudo apt update && sudo apt upgrade -y
الخطوة 2: تثبيت JDK 17
الخيار A — OpenJDK من المستودعات الرسمية:
sudo apt install openjdk-17-jdk -y
الخيار B — Eclipse Temurin (موصى به للتوحيد):
sudo apt install -y wget apt-transport-https gpg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-17-jdk -y
الخطوة 3: التحقق من التثبيت
java -version
النتيجة المتوقعة:
openjdk version "17.0.13" 2024-10-15
OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11)
OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
javac -version
النتيجة المتوقعة:
javac 17.0.13
الخطوة 4: التحقق من المسار
which java
النتيجة المتوقعة:
/usr/bin/java
readlink -f $(which java)
النتيجة المتوقعة (تظهر المسار الحقيقي):
/usr/lib/jvm/temurin-17-jdk-amd64/bin/java
الخطوة 5: تكوين JAVA_HOME
sudo nano /etc/environment
أضف هذا السطر:
JAVA_HOME="/usr/lib/jvm/temurin-17-jdk-amd64"
أو لـ OpenJDK:
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"
أعد التحميل:
source /etc/environment
echo $JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
إذا كانت هناك عدة إصدارات من Java مثبتة
sudo update-alternatives --config java
سيعرض جميع الإصدارات المثبتة ويسمح لك بالاختيار:
يوجد 2 خيارات للبديل java.
الاختيار المسار الأولوية الحالة
------------------------------------------------------------
* 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 الوضع التلقائي
1 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1711 الوضع اليدوي
2 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 الوضع اليدوي
اضغط على <Enter> للاحتفاظ بالقيمة الافتراضية[*] أو اكتب الرقم المحدد: 1
نفس الشيء لـ javac:
sudo update-alternatives --config javac
🐧 Fedora / CentOS / RHEL (dnf/yum)
Fedora
sudo dnf install java-17-openjdk-devel -y
CentOS / RHEL
sudo yum install java-17-openjdk-devel -y
التحقق
java -version
javac -version
which java
تكوين JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
echo $JAVA_HOME
اختيار الإصدار النشط
sudo alternatives --config java
sudo alternatives --config javac
🐧 Arch Linux / Manjaro (pacman)
🐧 التثبيت باستخدام SDKMAN! (جميع التوزيعات)
تثبيت SDKMAN!
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
تثبيت Java 17
sdk list java | grep tem
sdk install java 17.0.13-tem
التحقق
java -version
javac -version
which java
echo $JAVA_HOME
إدارة عدة إصدارات
sdk list java # عرض جميع الإصدارات المتاحة
sdk install java 21.0.5-tem # تثبيت Java 21 بالإضافة
sdk use java 17.0.13-tem # استخدام Java 17 لهذه الجلسة
sdk default java 17.0.13-tem # Java 17 كإعداد افتراضي
🐧 التثبيت اليدوي (تنزيل مباشر)
الخطوة 1: تنزيل
cd /tmp
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.13%2B11/OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz
الخطوة 2: استخراج
sudo mkdir -p /usr/lib/jvm
sudo tar -xzf OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz -C /usr/lib/jvm
الخطوة 3: تكوين
echo 'export JAVA_HOME=/usr/lib/jvm/jdk-17.0.13+11' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
الخطوة 4: التحقق
java -version
javac -version
which java
echo $JAVA_HOME
التحقق النهائي (جميع أنظمة التشغيل)
افتح طرفية جديدة ونفذ جميع هذه الأوامر:
1. إصدار Java
java -version
✅ يجب أن يعرض openjdk version "17.0.x"
2. مترجم Java
javac -version
✅ يجب أن يعرض javac 17.0.x
3. أين تم تثبيت Java؟
# macOS / Linux
which java
readlink -f $(which java) # المسار الحقيقي (Linux)
# Windows PowerShell
where.exe java
4. هل تم تعيين JAVA_HOME؟
# macOS / Linux
echo $JAVA_HOME
# Windows PowerShell
$env:JAVA_HOME
# Windows CMD
echo %JAVA_HOME%
✅ يجب أن يعرض مسارًا إلى JDK 17
5. اختبار سريع — تجميع وتشغيل برنامج
أنشئ ملفًا Hello.java:
public class Hello {
public static void main(String[] args) {
System.out.println("Java " + System.getProperty("java.version") + " fonctionne !");
System.out.println("JAVA_HOME = " + System.getProperty("java.home"));
}
}
قم بتجميع وتشغيل:
javac Hello.java
java Hello
النتيجة المتوقعة:
Java 17.0.13 fonctionne !
JAVA_HOME = /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
نظف:
rm Hello.java Hello.class
حل المشاكل
❌ java غير معترف به كأمر
| السبب | الحل |
|---|---|
| Java غير مثبت | اتبع خطوات التثبيت أعلاه |
| PATH غير مكون | أضف JAVA_HOME/bin إلى PATH |
| الطرفية غير معاد تحميلها | أغلق وأعد فتح الطرفية |
Windows: تحقق من أن %JAVA_HOME%\bin موجود في PATH النظام.
macOS/Linux: تحقق من أن ~/.zshrc أو ~/.bashrc يحتوي على:
export JAVA_HOME=...
export PATH=$JAVA_HOME/bin:$PATH
❌ إصدار Java غير صحيح معروض
إذا كان java -version يعرض Java 8 أو 11 أو 21 بدلاً من 17:
Windows:
- تحقق من PATH: يجب أن يظهر الإصدار 17 قبل الآخرين
- احذف الإصدارات القديمة من PATH
macOS:
/usr/libexec/java_home -V # يعرض جميع الإصدارات
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
java -version # يجب أن يعرض الآن 17
Linux:
sudo update-alternatives --config java # اختر الإصدار 17
sudo update-alternatives --config javac
❌ JAVA_HOME غير معرف
Windows:
- قائمة ابدأ → "متغيرات البيئة"
- متغيرات النظام → جديد
- الاسم:
JAVA_HOME, القيمة:C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot
macOS:
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 17)' >> ~/.zshrc
source ~/.zshrc
Linux:
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-17-jdk-amd64' >> ~/.bashrc
source ~/.bashrc
❌ الفرق بين java و javac
| الأمر | الدور | مضمن في |
|---|---|---|
java | تشغيل برنامج Java مترجم | JRE وJDK |
javac | تجميع كود المصدر .java إلى .class | JDK فقط |
إذا كان java يعمل ولكن ليس javac → لقد قمت بتثبيت JRE بدلاً من JDK. أعد تثبيت JDK.
❓ JDK مقابل JRE مقابل JVM — ما الفرق؟
┌─────────────────────────────────────┐
│ JDK │
│ (Java Development Kit) │
│ ┌────────────────────────────────┐ │
│ │ JRE │ │
│ │ (Java Runtime Environment) │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ JVM │ │ │
│ │ │ (Java Virtual Machine) │ │ │
│ │ │ يشغل البايت كود │ │ │
│ │ └──────────────────────────┘ │ │
│ │ + مكتبات قياسية │ │
│ │ + java (تشغيل) │ │
│ └────────────────────────────────┘ │
│ + javac (تجميع) │
│ + jdb (مصحح) │
│ + javadoc, jar, jshell... │
└─────────────────────────────────────┘
| المكون | ما يفعله | لمن |
|---|---|---|
| JVM | يشغل البايت كود Java | الجميع |
| JRE | JVM + مكتبات لتشغيل | المستخدمين النهائيين |
| JDK | JRE + أدوات لتطوير (javac, jdb...) | المطورين ← هذا هو المطلوب |
قائمة التحقق من التحقق
قبل الانتقال إلى العمل العملي التالي (تثبيت Maven)، تحقق من:
-
java -versionيعرض 17.0.x -
javac -versionيعرض 17.0.x -
which java(أوwhere.exe java) يعيد مسارًا صالحًا -
echo $JAVA_HOME(أو$env:JAVA_HOME) معرف - برنامج
Hello.javaيتم تجميعه وتشغيله بشكل صحيح
الخطوة التالية
تم تثبيت Java 17! انتقل الآن إلى تثبيت Maven:
➡️ العمل العملي التالي: تثبيت Maven 3.9.x