بسم الله و الصلاة والسلام على رسول الله
السبب الرئيسي لمشكلة الخطأين الشهيرين :
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException
في غالب الأحوال هو خطأ في تعيين قيمة java home و class path
في حال لم تسمع بهما من قبل إليك هذه التدوينة البسيطة في شرح هذين المفهومين :
سأفترض الآن أنك مدرك لما سبق و تريد تعيين القيم المناسبة
في البداية دعنا نعثر على مسارات jdk في جهازك
افتح الطرفية (موجه الأوامر terminal) و اضرب هذا الأمر :
sudo update-alternatives --config java
هذا سيعطيك المسارات لجافا.
في حالتي هذه لدي فقط openjdk-11
واذا لديك اصدارات أخرى سيتم عرضها.
ما يهمنا أنك حصلت على مسار الاصدار الذي تريد و قمت بنسخه لنضعه كقيمة JAVA HOME
تنويه : اذا كنت حملت jdk سابقا و ثبتها في opt اذا انت تعرف المسار ولا حاجة لك بالخطوة السابقة.
في جنو/لينكس او بشكل أدق في الصدفة (bash) نستعمل أمر export لتعيين قيم البيئة (enviroment)
اذا لتعيين المسار المنسوخ كقيمة لمنزل جافا ننفذ في الطرفية :
export JAVA_HOME =/usr/lib64/jvm/jre-11-openjdk/bin/java
ولنجعلها متوفرة لدى كل برامج جافا بشكل افتراضي ، سنقوم بتعيين هذه القيمة في bashrc وهو سكربت يتم تنفيذه عند كل تشغيل للصدفة وبالتالي اذا وضعنا export فيه فان القيمة ستكون متوفرة دائما لأي تطبيق جافا سيتم تشغيله و bashrc موجود في مجلد المنزل الخاص بمستخدمك , سأستعمل nano لتحريره واضافة export :
sudo nano ~.bashrc
وأضيف الأمر السابق.
بقي قيمة صف جافا وتعيينها كما سبق
export CLASSPATH=.
