الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

CLASSPATH

بدأه Game111 في 17 مايو 2011 · 8 رد · 887 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ما هو classpath و ما اهميته و فيما يستخدم ؟؟

#2

الكلاس باث اول يخبر ال JVM اين تبحث عن الكلاسات

فلو بحثت في نظام ويندوز مثلا

My computer -> properties -> Advanced -> Environment Variables

ستجد انه تم تكوين متغير جديد بالاسم CLASSPATH يحتوي على مسارات الJDK وعلى مسارات مكتبات جافا المختلفه

طبعا يمكن ان تمرره كبارامتر للاوامر java, javac لتخبرهم اين يبحثون عن الملفات التي يحتاجوها سواء في حالة الكومبايل او run لان مسار برنامجك ليس بالضروره مضاف الى

الكلاس باث الموجود في Environment Variables

من الاشياء التي يجب ان تعرفها ان الاوامر java, javac لن تبحث في المسار الحالي الا اذا انت اخبرتهم بذلك مثلا

-classpath /mypack/myclass:/classA:.

في الكود المكتوب لقد اخبرت الامر بان يبحث في المسار /mypack/mycalss تحت المسار الحالي و المسار /classA تحت المسار الحالي

والمسار الحالي الذي رمزنا له بالنقطه في نهاية الامر .

لاحظ ان بين كل مسار ومسار يوجد":"

ايضا الكلاس باث يقرأ من اليسار الى اليمين ، فلو كان هناك كلاسين بنفس الاسم في مسارين مختلفين يجب ان تحدد مسار الكلاس الذي تريده قبل المسار الاخر

في المثال الذي في الاعلى الكلاس باث يبدأ من /mypack/myclass وينتهي عند المسار الحالي لانه سوف يقرأ من اليسار الى اليمين

يمكنك ايضا الرجوع الى مواضيع المنتدى اذا كان تم نقاش هذا الموضوع

بالتوفيق

1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#3

المشكلة اكتشفت انني لا يمكنني ان استعمل الاوامر java , javac الا اذا كنت في نفس المسار المتواجدين فيه اللي هو ملف jdk بالتحديد ملف bin و انا اعمل على النت بينز و هو يعزل المشاريع اللي اعملها في ملف بعيدا عن مكتبة الجافا JDK ,,, فكيف اعمل لهم كومبايل عن طريق الامر javac ,, الا يوجد طريقة ؟؟

عندي استفسار ,, كيف يعرف java compiler مكان كلاسات الجافا من دون ان احدد مكانهم له ؟؟

و أسأل الله العظيم ان يوفقك

#4
Game111 كتب:

المشكلة اكتشفت انني لا يمكنني ان استعمل الاوامر java , javac الا اذا كنت في نفس المسار المتواجدين فيه اللي هو ملف jdk بالتحديد ملف bin و انا اعمل على النت بينز و هو يعزل المشاريع اللي اعملها في ملف بعيدا عن مكتبة الجافا JDK ,,, فكيف اعمل لهم كومبايل عن طريق الامر javac ,, الا يوجد طريقة ؟؟

عندي استفسار ,, كيف يعرف java compiler مكان كلاسات الجافا من دون ان احدد مكانهم له ؟؟

و أسأل الله العظيم ان يوفقك

الجافا يعرف مكان الكلاسات عن طريق متغير الclasspath ،تاكد انه المسار الحالي مضاف الى الكلاس باث

.;

اذا لم يكن هذا ما تقصده فارفق رسالة الخطأ التي تحصل عليها عند استخدام javac

تم تعديل هذه المشاركة بواسطة mental-driller في 18 مايو 2011 في 03:53

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#5

تأكد من مسار الJDK\bin مضاف الى الPATH في Environment variables

للتأكد افتح الكوماند لاين واكتب java او javac فاذا ضهر لك خرج لعدد كبير من الاسطر عن طريقة استخدام الامر فانه مضاف اما اذا رايت

الرسالة javac" is not recognized as an internal "..... فانه غير مضاف

ممكن ان تعمل كومبايل من داخل النت بينز والنت بينز هو الذي سيقوم بالنيابه عنك بادارة المشاريع لك وسيتخاطب مع الJDK

بالطبع النت بينز يمكنك من التحكم بالكلاس باث عبر خصائص المشروع

ولكن اذا اردت ان تستخدم Java و javac من دون النت بينز اعمل التالي

اكتب داخل ملف نص عادي واحفظة بالامتداد .java

من خلال الكوماند لاين اذهب الى المكان الذي يوجد به هذا الملف واعمل javac اذا نجح الامر سوف ينتقل المؤشر الى السطر التالي دون

اضهار اي شي ، ثم اكتب java والحق به اسم البرنامج وسيعمل بشكل طبيعي

تم تعديل هذه المشاركة بواسطة mental-driller في 18 مايو 2011 في 01:58

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#6
mental-driller كتب:

تأكد من مسار الJDK\bin مضاف الى الPATH في Environment variables

للتأكد افتح الكوماند لاين واكتب java او javac فاذا ضهر لك خرج لعدد كبير من الاسطر عن طريقة استخدام الامر فانه مضاف اما اذا رايت

الرسالة javac" is not recognized as an internal "..... فانه غير مضاف

ممكن ان تعمل كومبايل من داخل النت بينز والنت بينز هو الذي سيقوم بالنيابه عنك بادارة المشاريع لك وسيتخاطب مع الJDK

بالطبع النت بينز يمكنك من التحكم بالكلاس باث عبر خصائص المشروع

ولكن اذا اردت ان تستخدم Java و javac من دون النت بينز اعمل التالي

اكتب داخل ملف نص عادي واحفظة بالامتداد .java

من خلال الكوماند لاين اذهب الى المكان الذي يوجد به هذا الملف واعمل javac اذا نجح الامر سوف ينتقل المؤشر الى السطر التالي دون

اضهار اي شي ، ثم اكتب java والحق به اسم البرنامج وسيعمل بشكل طبيعي

تأكدت من java و هو موجود لكن javac غير موجود و من متغيرات النظام قيمة path عندي %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static

javac موجود لكن لابد من ان اكون في المسار jdk\bin , اما اذا كتبتها مباشرة من فتح موجه الاوامر يظهر لي غير موجود لانه موجه لمسار مختلف عن jdk\bin

تم تعديل هذه المشاركة بواسطة Game111 في 18 مايو 2011 في 16:20

#7

لا لا javac تحت المسار jadk\bin يعني لو الجي دي كي مضاف للباث عندك خلاص اي حاجه داخل المجلد bin بتشتغل معاك ومن بينها javac

ضيف المسار jdk\bin لحقك الباث يعني انسخ مسار الجي دي كي كامل تمام ! بعدي في نهاية الباث الصق مسار الجي دي كي وبعدين ضيف ";"

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#8
mental-driller كتب:

لا لا javac تحت المسار jadk\bin يعني لو الجي دي كي مضاف للباث عندك خلاص اي حاجه داخل المجلد bin بتشتغل معاك ومن بينها javac

ضيف المسار jdk\bin لحقك الباث يعني انسخ مسار الجي دي كي كامل تمام ! بعدي في نهاية الباث الصق مسار الجي دي كي وبعدين ضيف ";"

شكرا لك , تم

#9

انا سعيد لاني استطعت ان اساعدك اخي

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

مواضيع مشابهة