سوف نتحدث اليوم عن ترجمة (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 classestmpclasses
الآن أنت أنشئت النسخة المحققة وهي موجودة في المجلد 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
وتضع في الثاني حجم ملف الجار بالبايت (تضع الحجم الأصلي وليس الحجم على القرص) .
مصنف في
السلام عليكم
اود شكركم على المواضيع المميزه التي تطرحهوها هنا.انا مبتدا في برمجه الجوال والاقي صعوبه في تطبيق بعض الامثله حيث بعد ان يخبرني البرنامج ان عمليه البناء قد تمت ثم اعطي تنفيذ تضهر رساله خطأ Exception:java.lang.classnotfound
لم اعرف السبب طبعاراجيا التعاون معي في تنفيذ بعض الامثله مع فائق احترامي
بريدي الالكتروني munimw@yahoo.com