ما الذي يحدث داخل Wireless Toolkit

برمجة





سوف نتحدث اليوم عن ترجمة (compile) الميدليت بشيء من التفصيل .

طبعا نحن تكلمنا في السابق عن عمل الميدليت بالـ Wireless Toolkit و الإيكليبس ، و لكننا لا نعلم ما يجري في الداخل فقط نعمل RUN ثم يعمل البرنامج . لكننا الآن سوف نعرف ما الذي عمله لنا هذين البرنامجين بشيء من التفصيل .

طريقة ترجمة الميدليت :

1- تعمل compile للبرنامج باستخدام javac ولكن يجب أن تخبر المترجم أنك تود لبرنامجك أن يكون قابلاً للعمل على منصات KVM في الجوالات وليس منصة JVM التي في الكمبيوتر فلذلك نحن نحدد له المكتبات باستخدام -bootclasspath بحيث تكون بهذا الشكل


javac -bootclasspath C:\WTK2.5.2\lib\cldcapi11.jar;C:\WTK2.5.2\lib\midpapi21.jar

وكما تلاحظون فإننا إخترانا

cldcapi11 أي CLDC 1.1

و midpapi21 أي MIDP2.1

وطبعا بإمكانك إختيار ما تريد كـ midpapi20.jar أو midpapi10.jar وقل مثل ذلك بالنسبة لCLDC .

أما الآن فنرجع إلى برنامجنا العزيز HelloWorld.java الذي قتلناه تجارباً لأننا سنجرب عليه اليوم أيضاً .

أنشيء ثلاث مجلدات بأسماء src و tmpclasses و classes

وضع برنامجنا HelloWorld.java ب مجلد src

ثم من الكوماند لاين اكتب :

javac -bootclasspath C:\WTK2.5.2\lib\cldcapi11.jar;C:\WTK2.5.2\lib\midpapi21.jar -d tmpclasses src\*.java

بهذه الطريقة نحن ترجمناه كما في أي برنامج عادي و ستجد ملف HelloWorld.class .

 

2- التحقق ByteCode:

هذه الخطوة ليست موجودة في برامج الكمبيوتر العادية وهي خاصة بال CLDC وذلك لأن حجم الذاكرة صغير جدا مما يستدعي مثل هذا الإجراء . وفي الحقيقة أن التحقق يكون على شكل قسمين الأول هو هذا الذي سنعمله وهناك تحقق آخر يكون في جهاز الجوال نفسه .

اكتب :

C:\WTK2.5.2\bin\preverify -classpath C:\WTK2.5.2\lib\cldcapi11.jar;C:\WTK2.5.2\lib\midpapi21.jar -d classes tmpclasses

الآن أنت أنشئت النسخة المحققة وهي موجودة في المجلد classes

 

3- حزم الملف بصيغة .jar

لكي تحزم البرنامج بصيغة .jar لا بد من أن يوجد ملف اسمه MANIFEST.MF وهو يحتوي على بعض الوصف لنوعية البرنامج

أنشيء مجلد جديد فارغ وسمه MANIFEST.MF و اكتب بداخله :

MIDlet-1: HelloWorld, HelloWorld.png, HelloWorld

MIDlet-Vendor: Unknown

MIDlet-Version: 1.0

MicroEdition-Configuration: CLDC-1.1

MicroEdition-Profile: MIDP-2.1

 

ثم ضع الملف في مجلد classes ومن الكوماند ادخل الى مجلد classes واكتب الآتي لرزم الملف :

jar cmf MANIFEST.MF HelloWorld.jar HelloWorld.class

 

4- بعض أجهزة الجوالات تتطلب أن يكون ملف HelloWorld.jad موجوداً أيضاً وهو يشبه تماماً ملف MANIFEST.MF عدا أنه يزود عنه بسطرين هما (انسخ ملف MAINFEST و أعد تسميته بـ HelloWorld.jad و أضف إليه السطرين التاليين)

MIDlet-Jar-URL: HelloWorld.jar
MIDlet-Jar-Size: 0000

وتضع في الثاني حجم ملف الجار بالبايت (تضع الحجم الأصلي وليس الحجم على القرص) .




عدد التعليقات : 6 على “ما الذي يحدث داخل Wireless Toolkit”


mygif
اكرم الحزين يعلق يوم 26 February, 2008 الساعة 2:21 pm

السلام عليكم
اود شكركم على المواضيع المميزه التي تطرحهوها هنا.انا مبتدا في برمجه الجوال والاقي صعوبه في تطبيق بعض الامثله حيث بعد ان يخبرني البرنامج ان عمليه البناء قد تمت ثم اعطي تنفيذ تضهر رساله خطأ Exception:java.lang.classnotfound
لم اعرف السبب طبعاراجيا التعاون معي في تنفيذ بعض الامثله مع فائق احترامي
بريدي الالكتروني munimw@yahoo.com

mygif
ماجد يعلق يوم 27 February, 2008 الساعة 11:55 am

حياك الله أخي أكرم ..

لم تحدث معي مشكلتك من قبل ..

ولكن هل وضعت باث JDK في Environiment . وماهي إصارة ال JDK تبعك .

mygif
اكرم الحزين يعلق يوم 29 February, 2008 الساعة 8:11 pm

السلام عليكم اخي العزيز وشكرا على الرد انا طبقت عده امثله على wtk2.5.2 ولكن مع هذا المثال تضهر رساله الخطا حيث ان المثال يحتوي على ملف مصدري ومكتبه يعتمد عليها البرنامج في التنفيذ حيث ان المكتبه والتي هي بالمتداد jar وضعتها في مجلدlib وبعد ان قمت بعمليه bulid يكمل عمليه البناء بنجاح ولكن عندما اضغط run تضهر رساله الخطا Exception:java.lang.classnotfound ارجو مساعدتي اخي الكريم في تنفيذ هذا البرنامج لكي اتعلم من اخطائي وكذلك البرنامج جدا فكرته جميله فهو يتعامل مع البلوتوث ممكن اذا ما في ازعاج لكم اخي العزيز مراسلتي على بريدي الأكتروني لكي ارسل لك الملف المصدري والمكتبه وكذلك لغرض التواصل مع هذه اللغه البديعه

اخوك اكرم الحزين

mygif
ماجد يعلق يوم 29 February, 2008 الساعة 10:42 pm

حياك الله أخي أكرم ..

هذا هو إيميلي majed {at} majed {dot} in

mygif
اكرم الحزين يعلق يوم 1 March, 2008 الساعة 2:20 pm

السلام عليكم اخ ماجد ارجو ان رسالتي قد وصلتك على بريدك الألكتروني والتي تحتوي وصف المشكله وكذلك الملفات المرفقه ارجو اعلامي بذلك وبارك الله فيك اخي العزيز

mygif
YahooBot يعلق يوم 11 November, 2008 الساعة 9:28 pm

Nice site, thanks for information!

أضف تعليق :