السلام عليكم
ما هو classpath و ما اهميته و فيما يستخدم ؟؟
السلام عليكم
ما هو classpath و ما اهميته و فيما يستخدم ؟؟
الكلاس باث اول يخبر ال 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 وينتهي عند المسار الحالي لانه سوف يقرأ من اليسار الى اليمين
يمكنك ايضا الرجوع الى مواضيع المنتدى اذا كان تم نقاش هذا الموضوع
بالتوفيق
No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!

المشكلة اكتشفت انني لا يمكنني ان استعمل الاوامر java , javac الا اذا كنت في نفس المسار المتواجدين فيه اللي هو ملف jdk بالتحديد ملف bin و انا اعمل على النت بينز و هو يعزل المشاريع اللي اعملها في ملف بعيدا عن مكتبة الجافا JDK ,,, فكيف اعمل لهم كومبايل عن طريق الامر javac ,, الا يوجد طريقة ؟؟
عندي استفسار ,, كيف يعرف java compiler مكان كلاسات الجافا من دون ان احدد مكانهم له ؟؟
و أسأل الله العظيم ان يوفقك
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!

تأكد من مسار ال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!

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
لا لا 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!

mental-driller كتب:لا لا 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!
