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

مشكلة بخصوص ال Package و التعرف على الكلاسات

بدأه sameh mahmoud في 6 فبراير 2009 · 5 رد · 885 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا دلوأتى بذاكر درس الاصناف و الكائنات قمت بعمل مايسمى بال package

فى اول الملف

package sameh;

و المشكلة هنا هى عدم القدرة على عمل نسخ من الكلاس الموجودة فى ملف اخر تحت نفس الباكج و سوف اوضح بالمثال التاتلى

اولا الكلاس الرئيسية التى تحتوى على الطريقة ال main

package sameh;
public class sameh1
{
 public static void main(String args[])
   {
	 HelloWorld HW1 = new HelloWorld();
	 HW1.printPlus(20,50);  
   }
}

والان مع الكلاس HelloWorld

المكتوبة فى ملف اخر

package sameh;
class HelloWorld
{
 void printPlus(double x,double y)
  {
	double sum1;
	sum1 = x + y;
	System.out.println("sum = "+ sum1);
 }
}

المشكلة هنا عند عمل compile للكلاس الرئيسية

يظهر الخطأ التالي

اقتباس
D:\Java t\sameh>javac sameh1.java

sameh1.java:3: class main is public,

a

public class main

^

sameh1.java:8: cannot resolve symbol

symbol : class HelloWorld

location: class sameh.main

HelloWorld HW1 = new HelloWorld();

^

sameh1.java:8: cannot resolve symbol

symbol : class HelloWorld

location: class sameh.main

HelloWorld HW1 = new HelloWorld();

^

3 errors

D:\Java t\sameh>

مع العلم بأن عندما اكتب الكلاسات فى ملف واحد تنجح العملية

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#2

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

هل قمت يعمل ال compilation للclass HelloWorld، ففي sameh1، عندما تكتب HelloWorld HW1 = new HelloWorld(); فهذا يعني أنه يوجد ملف HelloWorld.class

جرب

اقتباس
javac HelloWorld.java sameh1.java

#3

الف الف شكرا يا سعادة الباشا

تمت الترجمة بنجاح ولكن للاسف

عند تشغيل البرنامج عن طريق الامر

java sameh1

اقتباس
D:\Java t\sameh>java sameh3

Exception in thread "main" java.lang.NoClassDefFoundError: sameh3 (wrong name: s

ameh/sameh3)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(Unknown Source)

at java.security.SecureClassLoader.defineClass(Unknown Source)

at java.net.URLClassLoader.defineClass(Unknown Source)

at java.net.URLClassLoader.access$000(Unknown Source)

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Could not find the main class: sameh3. Program will exit.

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#4

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

بالاضافة لما قاله herch ربما كان للأمر علاقة بال CLASSPATH ؟؟

جرب هذا الدرس فهو مكتوب بطريقة جميلة و بسيطة

http://www.jarticles.com/package/package_eng.html

أتمنى أن يكون مفيد

سبحانك اللهم و بحمدك ، أشهد أن لا إله إلا أنت ، أستغفرك ربي و أتوب إليك

مدونتي

http://www.facebook.com/brmjt

#5

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

بما أنك تستعمل package، فإن إسم الclass لم يعد sameh1 بل sameh.sameh1

لذلك فتنفيد البرنامج سيتم كالتالي

اقتباس
D:\Java t\sameh>cd ..

D:\Java t>java sameh.sameh1

أو

اقتباس
D:\Java t\sameh>java -classpath .. sameh.sameh1

#6

الف الف شكرا Herch و محمد سمير كلا من الطريقتين لهما نتيجة صحيحة تم ترجمة الكلاسات بنجاح و تشغيلهما (بالطرقتين) شكرا لكما على مساعدتي

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

صباح الفل

تم تعديل هذه المشاركة بواسطة sameh mahmoud في 6 فبراير 2009 في 19:33

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…