• 0
com.jkelany

نقاش لعمل مشروع Java Installer

سؤال

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

كل عام وانتم بخير

عيدسعيد عليكم جميعا يارب

من كثره التساؤلات التى حدثت فى المنتدى ومن كثره التساؤلات التى تحدث لى ايضا

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

فخطرت على بالى انى اعملى Java Installer

اولا قبل ان اتكلم انا لا اعمل اذا كان هناك برنامج يقوم بذلك ام لا

ثانيا ندخل فى الفكره التى خطرت ببالى

انى اردت ان اقوم بعمل برنامجى بالطريقه العاديه التى فى النهايه يكون المنتج الخاص به هو Jar file

وبعد ذلك اقوم باستخدام الـ Java Installer اللى ان شاء الله هنعمله

بأن امرر هذا الملف ال Jar file الخاص بالبرنامج الذى اريد تسطيبه الى البرنامج Java Installer

ويقوم البرنامج Java Installer بالعمل الخاص به وهو كالأتى :

1- يقوم بأخذ البرنامج المراد تسطيبه كما هوو

2- يقوم باضافه البرنامج المراد تسطيبه الى الـ Java Installer

الذى يعتبره الـ Java Installer كإنه ملف يريد نقله الى مكان معين

3- بعد ان يتم دمج البرنامج ووضعه كإنه ملف من ضمن ملفات الـ Java Installer

يقوم باخراج ملف اخر وهو عباره عن البرنامج ولكن مضاف اليه مرحله التسطيب

4- من ضمن المميزات التى اريد اضافتها الى الـبرنامج المراد تسطيبه هو انشاء اختصار له على سطح المكتب

5- اضافه ازاله تسطيب للبرنامج

وان امكن الامر نضيف هذا الامر الخاص بالازاله الى قائمه add/remove كما هى موجوده ف Control Panel فى الـ Windows مثلا

هذا مجرد اقتراح

اريد منكم المناقشه فيه

ولو امكن المساعده ايضا لان طبعا هناك اشياء كثيره هتواجهنى

هل من مؤيد للفكره والعمل بها ؟؟؟؟

وكل عام وانتم بخير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

87 إجابة على هذا السؤال .

  • 0

صوره توضح العمل

معلش انا فالفوتوشوب مش اووى wacko.gifwacko.gifwacko.gif

post-217802-062793100 1289925618_thumb.g

تم تعديل بواسطه Mahmoud Kelany
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

وكل عام وانتم بخير

فكرة رائعة جدا جدا جدا

أتمنى لك التوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ممكن اخي لو توضح اكثر عن فائده Java Installer

وشكراااااااا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الفكره

ان بعد ما اخلص اى برنامج او مشروع

عاوز اعمل له تسطيب

هى انى اضعه ضمن برامج الجهاز

واصنع له اختصار على سطح المكتب

زى اى برنامج مثلا ياهوو

اخدت البرنامج عملت ليه تسطيب

انشأ له ملف فى الـ drive الخاص بالنسخه وليكن C

وانشأ اختصار من الايقونه التى تشغل البرنامج ووضعها على سطح المكتب

هذا ما اريد فعله ولكن بالنسبه للجافا

وممكن حضرتك تقرا خطوات عمل البرنامج وان شاء الله تفيدك اكتر

وشكرا على مروركم جميعا

واتمنى اننا نبدا فى تنفيذ الفكره قريب باذن الله

حتى ولو على سبيل التعلم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وصلت الفكره

فكره جيده

راح نتعلم من وراء هذه الفكره الشئ الكثير

وشكرااااااااا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طبعاااا أستاذنا القدير :)

مهمه جدا هذي الفكره ..

وبتنفع نآس كثيررررررر

قووو آهيد... :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

فكرة حلوووووة جدا يا محمود

ربنا يوفقك واحنا معاااااك

:)

post-164956-087106800 1290061219_thumb.j

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

محمود اطلع على هذه الحزمة

https://wizard.dev.java.net/

على الأغلب ستستفيد منها في عملك

عملت فترة على تحويلها إلى العربي

سأبحث لك عن النتاج وإن وجدته سأضعه هنا

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

محمود اطلع على هذه الحزمة

https://wizard.dev.java.net/

على الأغلب ستستفيد منها في عملك

عملت فترة على تحويلها إلى العربي

سأبحث لك عن النتاج وإن وجدته سأضعه هنا

تحياتي

شكرا لك اخى علاء :)

اطلعت عليها ونزلت الملفات الخاصه بها

لكن اخى علاء هل من نبذه صغيره عن ما ستقدمه لى هذه الحزمه ؟

يعنى هتفيدنى ف ايه من وجهه نظرك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اللى فهمته من الامثله

انها تعتبر زى نافذه تسطيب

ولكن لى سوال هو انا مش ينفع اعمل النافذه دى بايدى

ام هذه الحزمه لها فائده اخرى انا اجهلها ؟

معلش اخى علاء بتقل عليك :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اهدافه هي

Provide an easy-to-use API for creating wizards

Leverage existing research into how to make wizards easy to use for end users

Leverage knowledge of known problems in existing wizard APIs to avoid them in this one

Make it easy to create wizards that end users find easy to use

Minimalism - the API should be low-surface-area, exposing no more concepts or classes than necessary

Robustness - keep the code simple and heavily covered by tests

اني اعتقد انه لو تشتغل من الصفر راح يكون افضل لان البرنامج ليس كبير جداا

وبذلك سوف تفقد جزء كبير من فائده

وشكراا

تم تعديل بواسطه pro.fahd
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اهدافه هي

Provide an easy-to-use API for creating wizards

Leverage existing research into how to make wizards easy to use for end users

Leverage knowledge of known problems in existing wizard APIs to avoid them in this one

Make it easy to create wizards that end users find easy to use

Minimalism - the API should be low-surface-area, exposing no more concepts or classes than necessary

Robustness - keep the code simple and heavily covered by tests

اني اعتقد انه لو تشتغل من الصفر راح يكون افضل لان البرنامج ليس كبير جداا

وبذلك سوف تفقد جزء كبير من فائده

وشكراا

اولا شكرا اخى فهد

ما انا بردوا لحد دلوقتى مش فاهم بجد

يعنى ايه ؟creating wizards

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

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

اننا ازاى نبدا العمل فالمشروع

من رايي اننا نبدا فى ازاى ننقل ملف الجار اللى هو المشروع المراد تسطيبه الى ملفات النظام

صح ولا فيه بدايه اخرى ؟؟

منتظر ردك اخى علاء فى اهميه هذه الحزمه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا عملت عمليه النسخ والاحتفاظ بالملف اللى نسخه عندى ف ArrayList

بس مش نسخ ملف اكبر من 18 ميجا

المشكله دلوقتى انى عاوز اعرف مكان تسطيب البرامج بتاعت الـ OS نظام التشغيل اللى انا شغال عليه

بستخدم الـSystem.getProperty

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

يعنى انا اعرف

os.name

os.version

user.home

user.name

user.dir

لكن للاسف اللى عارفهم لم يأدوا الغرض :(

منتظر مساعده اهل الخبره :)

تم تعديل بواسطه Mahmoud Kelany
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا وجدت مكتبه بس مش متفوره لدي لا اعلم لماذا اسمه java.nio.file.Path

يوجد فيها class path امكن يفيدك

http://download.java.net/jdk7/docs/api/java/nio/file/Path.html

ووجدت لنقل المفاتmethod moveTo()

http://download.java.net/jdk7/docs/api/java/nio/file/Path.html#moveTo%28java.nio.file.Path,java.nio.file.CopyOption...%29

http://download.oracle.com/javase/tutorial/essential/io/move.html

وشكرااا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذه الحزمة تقدم ببساطة التالي

مجموعة من النوفذ المتلاحقة تعرض على هيئة أ ثم ب ثم ج...إلخ

مع إمكانية الرجوع للأمام والتقديم للخلف

وهو على حسب ما يهيألي شيء ضروري في حزمتك

كل ما عليك هو أن تصمم Panels وتعطيها للحزمة وهي ستتكفل بالباقي

أما عن نفعها لك

فعلياً كل الـ installers هي عبارة عن شاشات متلاحقة تظهر كلها أو بعضها

مع تغيير بعض الأشياء مثل الترخيص واسم البرنامج وإصدارة البرنامج ودواليك

تريحك بصورة أخرى من التفكير في GUI على المستوى المنظر العام (على فكرة Netbeans يستخدمها في برنامج الإعداد الخاص به)

هل وصلت الفكرة؟

على فكرة قد لا تكون مفيدة كثيراً لك لكنها تقدم بعض المميزات البسيطة ربما تسهل عليك الموضوع

وهذا المقال يقدم شرح عن ما تقوم به الحزمة مع بعض الأمثلة التي قد توضح الفكرة بشكل أفضل

http://www.javaworld.com/javaworld/jw-04-2008/jw-04-opensourcejava-wizard-api.html

تحياتي

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

انا وجدت مكتبه بس مش متفوره لدي لا اعلم لماذا اسمه java.nio.file.Path

يوجد فيها class path امكن يفيدك

http://download.java.../file/Path.html

ووجدت لنقل المفاتmethod moveTo()

http://download.java...opyOption...%29

http://download.orac...al/io/move.html

وشكرااا

اخى الكريم اشكرك كثيرا على مساعدتك

لكن للاسف هذه الكلاس وهذه الداله مو موجوده فى الـ JDK6

لكنها هتنزل ان شاء الله فى الـ JDK7

هذه مقاله لاخونا عصام كان كاتبها عن نقل الملفات فى JDK7

http://www.arabteam2000-forum.com/index.php?showtopic=199506

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لماذا تريد حفظ ملف في array list؟

بالنسبة لهذا المقطع

المشكله دلوقتى انى عاوز اعرف مكان تسطيب البرامج بتاعت الـ OS نظام التشغيل اللى انا شغال عليه

لم أستطع فهمك بشكل جيد وضح أكثر

تحياتي

تم تعديل بواسطه علاء الصالحي
إزالة الرد الخاطئ
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عتقد يا محمود ان كان فى اخت عامله برنامج دليل تليفونات وكان له set up فى البدايه

ممكن هذا يفيدنا .... http://www.arabteam2000-forum.com/in

لى سؤال الجافا كما نعلم تعمل على virtual machine وبالتالى فهى تعمل على اى جهاز او platform ايا كانت عكس .net

وبالتالى فهى لا تحتاج تسطيب او installer فى فى حاله البرامج الصغيره - هل انا صح ؟؟ -

.. وهذا يجعلنى اتسأل لماذا اصلا يتم اجراء عمليه الset up ..؟؟؟

الظاهر يقول ان ال installer فى حاله البرامج الكبيره يقوم ب - فك ضغط البرنامج الذى مفترض ان يكون مكون من باكدج ضخمه

- وضع الملفات المستخرجه ضمن ال program files فى ملفات النظام..

- اضافه بعض الاختصارات و المفاتيح فى ال Registry

ولكن هذا كل شىء ؟؟؟ اعتقد ان هناك وظائف اخرى انا اجهلها ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لما

تحياتي

لماذا تريد حفظ ملف في array list؟

بالنسبة لهذا المقطع

لم أستطع فهمك بشكل جيد وضح أكثر

تحياتي

انا اريد حفظه لدمجه مره اخرى كملف ضمن الـInstaller

انا بعمل برنامج ياخد الjarfile ويلحق بيه الـjava Installer instance ويطلع لى ملف واحد اضغط عليه يعمل عمليه تسطيب

انما بالنسبه للسوال الذى لم تفهمه

ان انا مثلا شغال ويندوز

فبالتالى مسار تسطيب البرامج عندى هيكون فى الـ c

داخل الملف Program Files

فانا عاوز اوصل لهذا الملف بطريقه ليست ثابته

يعنى مثلا علشان احصل على مسار المستخدم الحالى

الذى يخزن فيه كل البيانات الخاصه عنه وهكذا

بستخدام

System.getProperty("user.home");

بيعود لى بالمسار التالى

C:\Users\Mahmoud Kelany

اتمنى ان يكون سوالى اتضح اخى علاء :)

وشكرا على اهتمامك

هذه الحزمة تقدم ببساطة التالي

مجموعة من النوفذ المتلاحقة تعرض على هيئة أ ثم ب ثم ج...إلخ

مع إمكانية الرجوع للأمام والتقديم للخلف

وهو على حسب ما يهيألي شيء ضروري في حزمتك

كل ما عليك هو أن تصمم Panels وتعطيها للحزمة وهي ستتكفل بالباقي

أما عن نفعها لك

فعلياً كل الـ installers هي عبارة عن شاشات متلاحقة تظهر كلها أو بعضها

مع تغيير بعض الأشياء مثل الترخيص واسم البرنامج وإصدارة البرنامج ودواليك

تريحك بصورة أخرى من التفكير في GUI على المستوى المنظر العام (على فكرة Netbeans يستخدمها في برنامج الإعداد الخاص به)

هل وصلت الفكرة؟

على فكرة قد لا تكون مفيدة كثيراً لك لكنها تقدم بعض المميزات البسيطة ربما تسهل عليك الموضوع

وهذا المقال يقدم شرح عن ما تقوم به الحزمة مع بعض الأمثلة التي قد توضح الفكرة بشكل أفضل

http://www.javaworld...wizard-api.html

تحياتي

اتضح الامر اخى علاء

وان شاء الله نستخدمها فعلا هتوفر علينا كتير من التنظيم فى عمل النوافذ

اهم شىء المبدا الخاص بالعمل والكيفيه

شكرا لك :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عتقد يا محمود ان كان فى اخت عامله برنامج دليل تليفونات وكان له set up فى البدايه

ممكن هذا يفيدنا .... http://www.arabteam2000-forum.com/in

بس الاخت مستخدمه برنامج جهاز لذلك

لكن انا عاوز اعمل برنامج لينا احنا

حاجه باسم الفريق العربى :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لماذا لا تستخدم Streams؟

صدقاً لم أجد ما يساعدني على الوصول لهكذا شيء في جافا بالطرق الجافاوية

لكن يمكنك باستخدام registry في نظام windows

http://www.watchingthenet.com/how-to-change-the-default-installation-folder-in-windows.html

لا أعرف عن الأخ linux

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لماذا لا تستخدم Streams؟

صدقاً لم أجد ما يساعدني على الوصول لهكذا شيء في جافا بالطرق الجافاوية

لكن يمكنك باستخدام registry في نظام windows

http://www.watchingt...in-windows.html

لا أعرف عن الأخ linux

تحياتي

ما انا مستخدم الـStreams اخى علاء

لكن اريد ان اتحفظ بالملف فى مكان تخزينى

يعنى مش هاقرا واكتب فى نفس الوقت

انا هاقرا وبعدين عند الحاجه هاكتب

هاشوف موضوع الـregistry دا وربنا يسهل والاقى ليه طريقه للاستخدام فالجافا

بس اكيد فيه key بستخدمه مع الـ

System.getProperty

يرجع لى مسار ملف التسطيب الخاص بنظام التشغيل

مممكن الاخ عصام او الاخ وجدى يفيدنا فالموضوع دا ان شاء الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل يمكن أن ترفق الشيفرة حتى أستطيع فهم المشكلة بشكل أدق؟

في انتظار الإخوة

بالنسبة لاستخدام registry ابحث في المنتدى هنا أظن أن الأخ ناردين جزاها خيراً

كانت قد وضعت شيء عن هذا مسبقاً

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل يمكن أن ترفق الشيفرة حتى أستطيع فهم المشكلة بشكل أدق؟

في انتظار الإخوة

بالنسبة لاستخدام registry ابحث في المنتدى هنا أظن أن الأخ ناردين جزاها خيراً

كانت قد وضعت شيء عن هذا مسبقاً

تحياتي

هذه هى الشفره التى اقصدها اخى علاء



import java.io.*;
import java.util.*;
import javax.swing.*;
import utils.Constants;

/**
*
* @author Mahmoud Kelany
*/
public class CopyProgramToOSInstallingFiles {

private File sourceFile;
private File destinationFile;
private ArrayList<Integer> inFile = new ArrayList<Integer>();
// private Vector<Integer> inFile = new Vector<Integer>();

public CopyProgramToOSInstallingFiles(File sourceFile, File destinationFile) {
this.sourceFile = sourceFile;
this.destinationFile = destinationFile;
}

public CopyProgramToOSInstallingFiles() {
}

public void readFile() {
if (sourceFile == null) {
JOptionPane.showMessageDialog(null, Constants.NO_FILE_SELECTED_EXCEPTION);
} else {
BufferedInputStream inStream = null;
try {
inStream = new BufferedInputStream(new FileInputStream(sourceFile));
int c;
while ((c = inStream.read()) != -1) {
inFile.add(c);
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
} finally {
if (inStream != null) {
try {
inStream.close();
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
}
}
}
JOptionPane.showMessageDialog(null, inFile.size());
}
}

public void writeFile() {

if (destinationFile == null) {
JOptionPane.showMessageDialog(null, Constants.NO_FILE_SELECTED_EXCEPTION);
} else {
BufferedOutputStream outStream = null;
try {
outStream = new BufferedOutputStream(new FileOutputStream(destinationFile));
int c = 0;
while (c != inFile.size()) {
outStream.write(inFile.get(c));
c++;
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
} finally {
if (outStream != null) {
try {
outStream.close();
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
}
}
}
}
}
}

انا تحايلت على الموضوع

بشىء كدا ولكنه غير قانونى هههههه


private String getInstallationPath() {
String javaHome = System.getProperty("java.home");
String[] split = javaHome.split("Java");
return split[0];
}

لكن واجهتنى مشكله اخرى وهى اعطاء الصلحيات فى ويندوز 7

لا يمكننى الكتابه فى هذا المسار

C:\Program Files\

لاننى غير Admin

هل من حل هههههههههه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ولماذا الوسيط يا محمود

مباشرة ما تقرأه اكتبه

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .