نقاش لعمل مشروع Java Installer
علاء الصالحي كتب:طبعلي رسالة بيقول فيها source not found
تحياتي
ما انا قولت لك تحط الملف الجار اللى انت عاوز تعمله تسطيب فى الـD
ويكون اسمه test.jar
d:/test.jar
وبعد كدا تجرب الـ installer دا
وتشوف هيشتغل معاك ولا لا
ما تزقيش يا عم أنتا :(
جيد هلا وضعت المشروع الخاص بـ NetBeans
بالمناسبة ما الذي فعلته حتى تم التخزين في programfiles بشكل عادي
تحياتي
علاء الصالحي كتب:ما تزقيش يا عم أنتا :(
جيد هلا وضعت المشروع الخاص بـ NetBeans
بالمناسبة ما الذي فعلته حتى تم التخزين في programfiles بشكل عادي
تحياتي
لا طبعا انا متاسف ان كان فعلا كلامى اتفهم كدا
انت اخونا الكبير يا اخ علاء ومعذره على ذلك
ماشى هاضع المشروع الخاص بالنت بينز حاضر
اه بالنسبه للـprogramFiles انا
عملت فحص الاول لو كان نظام التشغيل هو ويندوز 7 هيضع الملف على الـ root اللى هو
c:/
انما ان كان غير ذلك
فيتم وضع البرنامج فى الـ program files عادى
هذا ما حاولت اتغلب عليه بالنسبه لهذا المووضوع
عاوز الكود دلوقتى ولا ارفعه فى اخر المشروع خالص؟
من الجيد أن ترفعه الآن حتى نعطيك آراء حوله
بالنسبة للفحص هل يمكنك عرضه هنا
على العموم أنا أعمل على 7 ولم يقوم البرنامج بتنزيل الملف على C الواضح أنه يفحص إذا كنت admin على الجهاز أم لا
تحياتي
علاء الصالحي كتب:من الجيد أن ترفعه الآن حتى نعطيك آراء حوله
بالنسبة للفحص هل يمكنك عرضه هنا
على العموم أنا أعمل على 7 ولم يقوم البرنامج بتنزيل الملف على C الواضح أنه يفحص إذا كنت admin على الجهاز أم لا
تحياتي
لالا هو هينزله فى الـC اذا كان هو مسار التسطيب لنظام تشغيلك
وبعد كدا هتلاقيه فى المسار دا
C:\JKelany
اذا كان عندك Seven
لالا انا مش بفحص موضوع الـ Admin دا خالص
على العموم هذا هو الكود الخاص بالبرنامج
منتظر توجيهاتكم :)
ودا الكود بتاع الـ Uninstaller
هو فكرته بسيطه اوووى
لو حد عنده فكره تانيه منتظرها :)
محمود أعطب نبذة مختصرة عن ملفاتك
حتى أستطيع الوصول بسهولة
بيني وبينك حاسس في لخبطة كبيرة لذا أريد أن أسمع منك
تحياتي
ايه اللخبطه الكتير يا عم علاء ؟؟؟
ايه اللى حاسس ان فيه لخبطه ؟
عندك الـ Gui package هى المسئوله عن شغال الاطارات التى تظهر فى عمليه التسطيب
الـ installjarfile package هى المسئوله العمليات التاليه حسب الكلاس
1-InstallationProcess هذه الكلاس المسئوله عن قراءه ملف الجار وتخزينه لحين الاستدعاء كتابته
2-InstallerProperties هى المسئوله عن خصائص عمليه التسطيب
من مسار تخزين ملف الجار واسم المشروع واسم الجار نفسه وهل يظهر للمستخدم انه يقوم بالاختيار بين عمل اختصار ام لا والتعليمات الخاصه بالبرنامج والرخصه معا
طبعا الملف دا هيكون متخزن فى الملف الـ install.jk اللى انا هاقبى اكتب فيه من خلال الـ Installer Tool اللى هيا هتاخد ملف الجار وتطلعه ملف تسطيبى
3- MakeShortcut هى الكلاس المسئوله عن عمليه انشاء اختصار على سطح المكتب
net.jimmc.jshortcut هيا فيها كلاس جاهزه اللى هيا نازله مع الـ JShortcut API فانا لقيتها open source فالبتالى وضعتها فالبرنامج بدلا من وضع الـ jar نفسه الخاص بالمكتبه
عندك الـ Utils package هتلاقى فيها
1-Constants هى المسئوله عن الثوابت فالبرنامج
2-Encrypt هى المسئوله عن تشفير الملف install.jk واعاده فك تشفيره هيا فيها داله عاديه وطريقه تشفير عاديه خالص
لكن كان الغرض منها ان المستخدم اللى ممكن يشوف الملف دا مش يعرف هو فيه ايه وخلاص علشان لو فتح الملف ووجده بالشكل دا
هيقفله على طول ![]()
![]()
![]()
3- استخدمت الـ TransparentPanel و ImagePanel كان الغرض استخدام خلفيه للبرنامج ولكن وجدتها مش كويسه الى حد ما
لكن ممكن مستقبليا اظبطها وكدا
بس يا عموو علاء
انت تامر واحنا ننفذ :)
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 1 ديسمبر 2010 في 20:25
استخدمت الاداه ولم يتم انشاء الملف في C , ولا في program files
بعد التنصب بحثت عن البرنامج ووجدنه هنا (علما باني استخدم win7)
لم افهم ما قامت به الحزمة ..
هل قامت بتنصيب برنامجي الموجود على جهازي.
ام المقصود اضافه برنامجي الى الحزمة JKelanyInstaller_v1.1 ثم اقوم بارسال الحزمة JKelanyInstaller_v1.1 كناتج نهائي لبرنامجي.
ان كان كذلك فلدي اقتراح (ساذكره عند عودتي من الكليه :) )
لالا بالنسبه للـسفن هيتسطب فى المسار التالى
c:/JKelany/
اتمنى لو حد عنده سفن يفيدنا فى هذا الموضوع
انا تعمل عندى كويس جدا
على Seven , XP
البرنامج اللى انا نزلته يقوم باخذ ملف منك
ويقوم بعمليه التسطيب له
طبعا هو فيه تعديلات لان هذا ليس المنتج النهائى
بالنسبه لهذا الملف فهو مخزن بداخله بيانات ثابته
كإسم البرنامج
ومسار ملف الـ Jar
واسم ملف الجار
وبعض البيانات الاخرى
لكن اللى هاقوم بعمله هى اداه
هتاخد منك ملف الجار بتاع المشروع بتاعك
وتدمجهم مع هذا البرنامج
وتطلع لك فى الاخر برنامج قابل للتسطيب
اتمنى ان تكون اتضحت
ومنتظر اقتراحك استاذى الكريم :)
بس لى سوال حضرتك معيد ف جامعه؟
Mahmoud Kelany كتب:بس لى سوال حضرتك معيد ف جامعه؟
لا انا طالب منتسب لاحد الكليات.
اما بالنسبه لبرنامج
حاليا لا تفكر في موضوع win7 (أجله لوقت آخر)
نفذ برنامجك ليعمل التنصيب في c
اجعل برنامجك يحتوي على
1 - حزمة الاصناف
2- فولد فارغ
وضيفة الاصناف الخاصه بك هي نقل اي شي موجود في المجلد الفارغ الى مجلد موجود في C
سواء كان هناك ملف جار او اي ملفات اخرى (مثل قاعدة بيانات اكسس، تكست ... )
لو اردت يمكنك اتاحة فرصه اضافة ملف الرخصه للبرنامج الذي ترغب في تصيبه. اتاحة فرصه تسمية المجلد...
هذه صوره توضيحيه لمحتوى ملف الجار
هذه الطريقة مستخدمة في الحزمة one-jar .
تم تعديل هذه المشاركة بواسطة العيافـي في 4 ديسمبر 2010 في 23:23
امممم
ماشى
طيب انا كنت بفكر فى كدا
بحيث لو فيه مكتبات وكدا
وان شاء الله جارى العمل على ذلك
وهو ما سأقوم به فى الاداه التى تقوم بعمليه الدمج
حيث يتم التحكم فى اسم البرنامج وخصائصه ويتم حفظها فى ملف من ضمن البرنامج
ويتم استدعائها اثناء عمليه التسطيب
بس اخلص من الامتحانات دى
امتحانات بصراحه مش كويسه خالص
معرفش احنا فكليات عمليه ولا نظريه
ربنا يسهل ان شاء الله
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 5 ديسمبر 2010 في 03:44
عزيزي محمود لا احظ باني سأقوم باضافة ملف الجار يدويا باستخدام برنامج wenrar في برنامجك
العيافـي كتب:عزيزي محمود لا احظ باني سأقوم باضافة ملف الجار يدويا باستخدام برنامج wenrar في برنامجك
لم اتفهمك
ماذا تقصد ؟؟؟؟
السلام عليكم
الوضع ليس كما كنت أعتقد
يبدو أني كنت أقرأ الشيفرة وأنا نائم :(
على كل لدي بعض الملاحظات على الفئات التي قرأتها
أولاً لديك دالة في InstallerProbertirs أظن اسمها getProberty
تعمل على أساس أنها تابعة للفئة مع أنك تقوم بعمل كائن من الفئة عندما قمت بعملية initialization
إما أن تكون الدالة تابعة للكائن وتستخدمها عن طريق الكائن أو تكون الفئة نفسها غير قابلة لبناء كائنات
ثانياً استخدم الفئة Property بدلاً من أن تقوم بكتابة ملف على صياغتك
(أظن تكلم عنها الأخ وجدي عصام لو لم تعرف أين تجدها أخبرني وسأبحث لك عنها)
ثالثاً انسى موضوع الثوابت في ملف جافا قلة من يستخدموا هذه الطريقة لأنها غير مرنة
استخدم ملف Property سيكون أفضل
رابعاً هذا لا يعتبر تشفير يا محمود من الأصل طريقة تشفير القيصر بدائية أكثر من اللازم
ثم لماذا تريد أن تشفر من الأصل؟
أخيراً لدي رجائين
الأول اللغة العربية يا محمود اللغة العربية يا عسل ليس بالضرورة أن يكون برنامجك بالعربية فقط لكني أطلب منك تعتبرنا كعرب
الثاني نريد بعض الدروس على الحزم والأشياء التي عملت عليها ومعاك أسبوعين لو ما شفتيش حاجة هعلقك في الميدان :) (بالطبع أمزح أنت مخير وكما قلت لك رجاء)
تحياتي
علاء الصالحي كتب:السلام عليكم
وعليكم السلام ورحمه الله وبركاته
الوضع ليس كما كنت أعتقد
يبدو أني كنت أقرأ الشيفرة وأنا نائم :(
ههههههههههه اكيد لانها سهله :) لان مش انا اللى ابرمج حاجه صعبه :D
على كل لدي بعض الملاحظات على الفئات التي قرأتها
أولاً لديك دالة في InstallerProbertirs أظن اسمها getProberty
تعمل على أساس أنها تابعة للفئة مع أنك تقوم بعمل كائن من الفئة عندما قمت بعملية initialization
إما أن تكون الدالة تابعة للكائن وتستخدمها عن طريق الكائن أو تكون الفئة نفسها غير قابلة لبناء كائنات
مش فاهم قصدك فى هذه الجزئيه
لكن انا حاسس كدا ان التصميم بتاعى غير مظبوط فى هذه الجزئيه
فمنتظر منك التوضيح اكثر او مثال على ما تقول :) ( بدبسك :D )
ثانياً استخدم الفئة Property بدلاً من أن تقوم بكتابة ملف على صياغتك
(أظن تكلم عنها الأخ وجدي عصام لو لم تعرف أين تجدها أخبرني وسأبحث لك عنها)
اممم بس انا عملت الملف دا علشان انا هارفقه مع المشروع بحيث ان كل البيانات هتكون فيه
يعنى هيستمد كل حاجه منه
لا انا شوفتها قبل كدا بس حسيتها صعبه شويه فى بدايه الامر
لان الكلام دا من زمان هارجع لها تانى :) واشوفها ان شاء الله
ثالثاً انسى موضوع الثوابت في ملف جافا قلة من يستخدموا هذه الطريقة لأنها غير مرنة
استخدم ملف Property سيكون أفضل
اممممم
بصراحه عجبتنى من اخى عثمان العيافى
ليه بقا علشان محدش يعرف يعدل فالبرنامج
انما لو كان معاه ملف الـProperty هيعدل فيه براحته وكدا
لكن هاشوف حاضر:)
رابعاً هذا لا يعتبر تشفير يا محمود من الأصل طريقة تشفير القيصر بدائية أكثر من اللازم
ثم لماذا تريد أن تشفر من الأصل؟
ما انا عارف انه مش تشفير
انا بس ليه عملت كدا
زى ما وضحت لك فالصوره السابقه ان انا عاوز لو حد وصل لهذا الملف
وحاول يفتحه هيظهر عنده بالطريقه دى فبالتالى مش هيفهم حاجه دا المقصد من هذه العمليه
أخيراً لدي رجائين
على عينى طبعا :) هو انا ليا كام علاء؟
الأول اللغة العربية يا محمود اللغة العربية يا عسل ليس بالضرورة أن يكون برنامجك بالعربية فقط لكني أطلب منك تعتبرنا كعرب
ما انا شغال بالانجليزى وهاعربه ان شاء الله
لكن بس لم يكمل كاملا
لان مش بحب ابرمج عربى مع انجليزى ف نفس الوقت
الثاني نريد بعض الدروس على الحزم والأشياء التي عملت عليها ومعاك أسبوعين لو ما شفتيش حاجة هعلقك في الميدان :) (بالطبع أمزح أنت مخير وكما قلت لك رجاء)
طبعا هاتكلم بالتفصيل عن المشروع وعن عمليه كل جزئيه
وازاى عملت كل حاجه بس انا والله عندى امتحانات مووووووووووووووووووووت الايام دى ( واهون عليك تعلقنى :) )
ولسه راجع حالا من الامتحان
عندى امتحانات ( ميد ترم , شفوى , عملى , تحريرى الترم )
كل دا ورا بعضه وانت عارف انا مقيم عندكوا فالبتالى مش كنت بذاكر خالص انا على حضور المحضرات والسكاشن بس :)
تحياتي
تحياتك دى على راسى من فوق:)
يا محمود يا إما بتخلي كل شيء static يا إما بتخلي كل شيء كائنات
في حال لم تستطيع الفهم أخبرني وسوف أقوم بتعديل الفئة لك وأسمع أسئلتك على التعديل
وأنا أقرأ الجزئية الخاصة بنسخ الملفات أحاول أن أفهم لماذا تخزن الملف في الذاكرة من الأصل
يمكن أن تقرأ من مكان في القرص الصلب وتكتب على مكان آخر بدون ان تخزن في الذاكرة
بمعنى أن تشبك الـ OutputStream على الـ InputStream مباشرة
تحياتي
تم تعديل هذه المشاركة بواسطة علاء الصالحي في 8 ديسمبر 2010 في 07:31
هذا مثال على عملية نسخ الملفات في الجافا
http://www.roseindia.net/java/beginners/CopyFile.shtml
تحياتي
علاء الصالحي كتب:يا محمود يا إما بتخلي كل شيء static يا إما بتخلي كل شيء كائنات
في حال لم تستطيع الفهم أخبرني وسوف أقوم بتعديل الفئة لك وأسمع أسئلتك على التعديل
وأنا أقرأ الجزئية الخاصة بنسخ الملفات أحاول أن أفهم لماذا تخزن الملف في الذاكرة من الأصل
يمكن أن تقرأ من مكان في القرص الصلب وتكتب على مكان آخر بدون ان تخزن في الذاكرة
بمعنى أن تشبك الـ OutputStream على الـ InputStream مباشرة
تحياتي
مش فاهم قصدك ع ايه اللى اخليه static ؟؟؟
انما بالنسبه لنسخ الملفات مش عارف انا حبيت اخزن الملف عندى
بحيث انى لم احتاجه اكتبه على طول
لكن بصراحه مش فيه سبب مقنع لاستخدامى هذه الطريقه
ما انا عارف انك ممكن تقرا وتكتب فى نفس الوقت لكن انا زى ما بقولك كدا
مش عارف ايه السبب انى اخزن الملف ( تقريبا كنت بجرب ههههههه )
عادى ما نطور بعد كدا :)
شكرا على اهتمامك :)
ان شاء الله اخلص امتحانات واكمل فالبرنامج واشرح كل حاجه باذن الله
انا دلوقتى شغال فى المرحله التانيه اللى هي الـ Installer API
اللى هتاخد منك ملف الجار وتخرج لك ملف تانى قابل للتسطيب
لكن عندى مشكله
انى لو ادخلت ملف الجار المراد عمل له تسطيب داخل ملف الجار الذى سيقوم بعمليه التسطيب
لو ادخلته باستخدام الكود
بيقولى انه مش لاقى الملف مع انه موجود فالمكان الصحيح
لكن لو ادخلت ملف الجار بايدى باستخدام ZIP program (برنامج فك الضغط )
بيشتغل عادى
مش عارف ايه المشكله ![]()
![]()
انا هتجنن
حد عنده اى فكره ليه بيحصل كدا
عزراً محمود ولكني لا افهم الغرض من البرنامج .......
هل وظيفة هذا ال installer ان ادخل له ملف جار واحصل على ملف .exe وهل سينفذ هذا الملف ال .exe البرنامج ام سيكون هناك مرحلة اخرى للتسطيب
مثلاً لو كنت استخدم الويندوز ؟؟ هل هذا الغرض ؟؟
ارجو التوضيح من خلال الامتدادات
شكراً جزيلاً
--
البرنامج هتدخل له ملف جار
هيخرج لك ملف جار اخر قابل للتسطيب
وهتلاقى عندك اختصار على سطح المكتب
زى كدا
مثال للتجربه
