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

أين الخطأ فيما قمت به ؟

مغلق
بدأه شبه جسم في 8 أغسطس 2006 · 10 رد · 1,248 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

لو سمحتوا يا إخوان ، أنا مبتدئ في مجال الجافا ، وأريد أن أتعلم البرمجة في الـ J2ME من الصفر .

لن أسألكم : كيف أبدأ ؟ لكي لا تحذفوا موضوعي ، ولكنني سأقوم بطرح ما قكت به خطوة خطوة ، وأريد منكم أن تخبرونني أين الخطأ فيما قمت به :

أنا عندي برنامج J2ME Wireless Toolkit وبرنامج NetBeans 5.0 في كمبيوتري ، وعندي هذا الكود :

public class Test {

public static void main( String args [ ] )

{
System.out.println( "Welcome to Java Programming!" );
}

}

أول شيء قمت به هو أن فتحت برنامج الـ NetBeans 5.0 ، وأخترت New Project ، فظهرت لي هذه الواجهة :

eed044faaf.jpg

ثم ضغطت Next ، فظهرت لي واجهة أخرى ، بها خيارات :

في خيار الـ Prpject Name كتبت : Test

وفي خيار الـ Project Location كتبت المسار التالي : C:\WTK20\apps

ثم قمت بالتأشير بعلامة صح على الخيار ( Set as Main Project ) والخيار ( Great Main Class ) .

ثم ضغطت على Finish فظهرت لي واجهة كتبت فيها الكود كما في الصورة :

a20b140c46.jpg

الآن يظهر لي خطأ في الكود ، فما هو الخطأ ؟

ثم إنني عندما أردت أن أجرب الكود عن طريق برنامج الـ J2ME Wireless Toolkit ظهرت لي هذه الرسالة :

c631a6ad19.jpg

هل أجد عندكم من ينبهني إلى الخطأ لو تكرمتم ؟

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#2

عزيزي السائل

لقد قمت بخطأين أساسيين :

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

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

وj2me وهي خاصه ببرامج الجوالات والاجهزه اللاسلكيه وليس فيها Main ميثود ولكنها استبدلت بـ startApp() ميثود

اما الخطأ الثاني : فيجب عليك تسمية البرنامج بنفس الاسم الذي سميت به الكلاس الذي يحتوي على Main or startApp

فعلى سبيل المثال هنا قمت بتسمية ملف الجافا والذي يحتوي على الكود بـ Main.java وهو خطأ والصواب ان تسميه Test.java حرفيا يجب ان يكون هكذا

وانا انصحك عزيزي السائل بالرجوع لدروس الاخ مصعب الغيلاني وهي تسعة دروس على صيغة pdf للمبتدئين ويبدا معك من الصفر وهي من أفضل الدروس التي يمكن ان تعطى للمبتدئين

تجد هذه الدروس على هذا الرابط

/index.php?showtopic=44197

واذا كان عندك اي استفسار او اي شيء لم تستطيع فهمه من هذه الدروس فنحن بالخدمة إن شاء الله

تحياتي لك

#3

وأنا أقول وين الخطأ طول هذي المدة !!!!

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

أتاري كل الكتب إللي كنت أقراها تتكلم عن لغة الجافا j2se

علشان كذا إلى الآن ما قدرت أنفذ تطبيق واحد

شكرا مرة ثانية أبو خلود ، وما قصرت

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#4

العفو يالغالي

كلنا نخطي في البدايه الى نجد التوجيه الصحيح

وانا تحت الخدمه وبين الايادي ابو عبدالرحمن إن شاء الله اي استفسار انا حاضر واذا تبي نشتغل سوا على المسنجر برضو مافي مانع <-- متحمس :)

تحياتي

#5

شكرا أخوي ..

أما عن المسنجر فأنا أشوف إنا احنا إذا تناقشنا أمورنا علانية في المنتدى فهذا يساعد الآخرين إنهم يستفيدوا معنا .

في ملاحظة أخوي على كتب الأخ مصعب ، هل هي للمبتدئين ؟

الصراحة أنا قريتالجزء الأول والثاني منهم وشفت في صعوبة شوي ، وإلى الحين ما قدرت أعمل التطبيق الموجود فيه ؟!

بعدين الكتاب ذكر هذي العبارة : ( عند قراءة هذا الموضوع يفترض ان يكون عندك معلومات لا بأس بها عن البرمجة الكائنية )

أنا فهمت أيش هي البرمجة الكائنية ، علما بأنني أتعامل مع الفيجوال بيسك منذ فترة وأصنع برامج جيدة نوعا ( يعني البرمجة ما جديدة علي ) .

المهم .. الكتاب فيه هذا الكود :

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet
{
private Display display;
TextBox box = null;
public void HelloMidlet(){}
public void startApp(){
display =Display.getDisplay(this);
box =new TextBox("Simple Example ","Hello ",20,0);
display.setCurrent(box);
}
public void pauseApp(){ }
public void destroyApp(boolean unconditional){}
}

الكود ما فيه شيء ، فهمته كله .. المشكلة إني ما قدرت أطبقه عمليا .

ممكن أخوي تساعدني بتطبيقه عن طريق برنامج NetBeans 5.0 أو على الأقل برنامج J2ME Wireless Toolkit

وجزاك الله خير

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#6

من عيوني ابو عبدالرحمن

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

وفعلا معك حق نخليها علانيه افضل

على العموم

سؤالك جوابه سهل جدا

كل اللي عليك هو نسخ الكود ولصقه في ملف جديد في المفكره وحفظه باسم "HelloMidlet.java" يعني تخلي امتداده بدال مايكون .txt يصير .java وبس

بعدها طال عمرك ماعليك الا انك تتبع الشرح اللي كتبه الاخ حسام الملحم ابو مازن على الرابط التالي

/index.ph...=69698&hl=#

#7

تسلم عيونك يا الغالي

لكن الظاهر إني راح ألعوزك معاي شوي :wacko:

أنا مريت على كل الدروس في المنتدى تقريبا قبل ما أكتب هذا الموضوع ، وسبق إني طبقت درس الأخ أبو مازن وما فلحت :P

على العموم أنا رجعت وطبقت الدرس مرة ثانية ، وراح أعطيك الخطوات علشان أكون واضح :

1- كتبت الكود في المفكرة .

2- حفظت الكود باسم HelloMidlet.java

3- فتحت برنامج الـ J2ME Wireless Toolkit واخترت New Project

4- في خانة الـ Project Name كتبت HelloMidlet

5- لكن في خانة الـ MIDlet Class Name ما عرفت أيش أكتب ، فكتبت حسب فهمي : MIDlet HelloMidlet

7- حطيت الملف HelloMidlet.java في المسار التالي : C:\WTK20\apps\HelloMidle\src

المشكلة إني لما حاولت أجرب التطبيق ظهرت لي هذي الرسالة :

Running with storage root DefaultColorPhone

Unable to create MIDlet MIDlet HelloMidle

java.lang.ClassNotFoundException: MIDlet HelloMidle

at com.sun.midp.midlet.MIDletState.createMIDlet(+14)

at com.sun.midp.midlet.Selector.run(+22)

Execution completed successfully

367306 bytecodes executed

22 thread switches

429 classes in the system (including system classes)

2005 dynamic objects allocated (64748 bytes)

1 garbage collections (0 bytes collected)

فأنا أتوقع إن الخلل في الخطوة رقم 5 ، وإلا أيش رايك ؟

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#8

بالضبط الخطأ في الخطوة رقم 5

شوف حبيبي في الخطوتين 4 و 5

Project Name = اكتب اسم البرنامج اللي يعجبك بالانقليزي

MIDlet Class Name = اكتب اسم الملف الذي يحتوي على الكود وفي حالة كان عندك اكثر من ملف فتكتب اسم الملف الرئيسي والذي يحتوي على الميثود startApp()

يعني في حالتك انت لازم تكتب بالخطوة رقم 5 HelloMidlet فقط

تحياتي

#9

ألف ألف ألف شكر يا الغالي أبو خلود

أخيرا تمكنت من صنع أول تطبيق لي

الحمد لله الذي يسر لي ذلك ، وسخرك لي لتحقيقه

الله ييسر لي وأقدر أخدمك في أي شيء ممكن تحتاجه ، وعسى بس ربي ما يخليك محتاج لحد غيره

الله ييسر لك أمورك في الدنيا والآخرة يا رب العالمين

يا نفسُ إن لم تصلحي

فتشبهي بالصالحينا

[ أبو العتاهية ]

#10

العفو خيوو والله ماسويت شي يستاهل كل هذا

مثل ماكان فيه ناس يعلموني وحسيت بمعاناتك الحين ارد اللي علي من واجب

بالتوفيق وإن شاء الله نشوف برامجك منتشره بين الناس :)

#11

جميل

Mohamed Deraz

هذا الموضوع مغلق.

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