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

(شرح) تحويل جافا إلى ملف تنفيذي صغير ولا يحتاج vm

مغلق
بدأه TheUnforgiven في 22 يوليو 2004 · 20 رد · 2,447 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

تحويل جافا إلى كود أصيل باستخدام GCJ تحت ويندوز

يمكن قراءته على الوب أو تنزيل نسخة منه للقراءة دون اتصال.

الصفحة الرئيسية للدليل:

http://www.arabcc.net/techdoc/gcjnativewin

#2

بارك الله بك

لست متواجد بشكل يومي

#3

Thank you so much for this useful information

#5

مشكووور يالغالي ونمتمنى صراحة نشوف البرنامج هذا

في انتشار اكثر ودعم اوسع للـ swing & awt

علماً انه يظهر البرنامج بشكل كبير الحجم :( إلا انه بداية ممتازه جداً

وهائله وقويه في عالم الجافا

اتمنى لك التوفيق والنجاح

#6

سعيد أن وجدتم الدليل مفيدا.

الأخ blue bird لم أفهم إن كنت تقصد بالحجم الكبير الكومبايلر أم البرامج التنفيذية الناتجة؟

#7

مرحباً اخي العزيز

صراحةً لم اجرب البرنامج ولكن قمت بإنزال الملف gcc34-20040607.tar.bz2

واكتفيت هنا ... وبعد قرائتي للموضوع كاملاً وجدت انه برنامج HELLO GCJ

سيأخذ على حد قولك 3.74 ميقا وهذا اعتقد انه كبير جداً :(

ولكن اعتقد انه شي ممتاز جداً وجود مثل هذا المشروع القووي لإني وبصراحة متحمس له جداً واتمنى ان يطبق فعلاً وينتشر ويزيد دعمه للمكتبات الباقيه...

#8

الأخ blue bird

تقصد هذا

اقتباس
وفي نمط الربط المستعمل في هذا المثال لن يحتاج الملف التنفيذي الناتج إلى أي ملف DLL إضافي أيضا. لاحظ أن حجم الملف التنفيذي الناتج هو 3.74 ميجابايت وهذا بسبب أن أي كود يحتاجه البرنامج للتنفيذ من المكتبات قد وضع في داخل الملف التنفيذي الناتج ذاته وهذا هو معنى الربط الستاتيكي. يمكن تقليص حجم الملف بضغطه. باستخدام WinRAR استطعت تقليص الحجم إلى 894 كيلوبايت فقط وهو حجم  مناسب للتوزيع على ويب.

ثم إن هذا في طريقة الربط الستاتيكي أما في طريقة الربط الديناميكي لنفس البرنامج فالحجم غير المضغوط هو 399 كيلوبايت.

ثم أليس ال Java RE حجمها 15 ميجابايت مضغوطة وتحتاج إما لإرفاقها مع البرنامج أو الطلب من المستخدمين أن ينزلوها في الطريقة العادية.

مسألة الأحجام ناقشتها بالتفصيل في المقال.

ثم إن الحزمة التي أنزلتها تدعم ال Swing و awt كما فصلت الكلام في المقال أيضا.

أنصحك بقراءة المقال فهو ليس طويلا.

#9

مرحباً اخي TheUnforgiven

بالعكس قرأت المقال اكثر من مرره واسعدني كثيراً هذا الشي

حتى اني قمت بإرسال اللينك للموقع إلى جميع الـgroups الموجودة لدي

هذا شيء مفرح وخطوة ناجحه جداً وفكره ممتازه

انا لا اعيبها ابداً ربما فهمت قصدي بشكل آخر...

انا قصدت البرنامج انه ممتاز جداً وفيه مميزات كثيره ولكن يعيبه بالبداية صعوبة إنتاج الملفات.. صراحةً حاولت وحتى الان لم انجح ولكن المحاولات مازالت قائمة... والعيب الآخر هو حجم الملف لو اردت ارساله لأحد الاشخاص ليستخدم برنامجي ولكن هذا ليس بعيب كبير بالعكس

لقد حل مشكلة عظمى لدي وهي عدم امكانية نشر برامجي :(

انا كتبت الكثير من البرامج ولكن ليس بمقدور احد استخدامها من اصدقائي وذالك لعدم وجود JRE لديهم ولا استطيع اجبارهم لتحميله :(

لذالك تجدني متحمس جداً لهذا المقال واحاول جاهداً نشر برامجي وهذا

اكيد بفضل الله ثم فضلك بنشر هذه الطريقة وهذا البرنامج وفكرتك المميزة..

سلمت يداك اخي العزيز...

#10

الأخ blue bird:

ربما لو ذكرت مشكلتك بالتحديد قد أستطيع مساعدتك.

ولكن دعني أخمن:

أنت لا تنفذ الأوامر من داخل مجلد bin؟

جميع الإخوان:

من جرب الطريقة الرجاء ذكر التجربة وإن نجحت أم لم تنجح.

#11

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

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#12

شكرا لك أخ رامي.

لكن أي مشروع منهم تقصد: الوثيقة التقنية أم هذه الوثيقة تحديدا؟

أم ربما GCJ الذي (للتوضيح) لا أشارك في تطويره و ليست الحزمة المربوط إليها من إعدادي.

#13

طبعا لا اقصد الـ GCJ و نحن يهمنا هذه الوثيقة تحديدا بشكل طبيعي

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#14

أنا مهتم الآن بالحصول على تغذية راجعة feedback

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

و الخطوة الأبعد من هذا هي أني أقبل المشاركات لتوسيع الوثيقة مع ذكر المشاركين بالطبع. فإذا ذهب أحد القراء إلى مناطق أبعد من المشروحة مثل التحويل إلى DLL و التعامل بين CPP و جافا أو غير ذلك يسرني أن أضم مشاركته.

#15

اخي العزيز TheUnforgiven

ممكن مساعدة وتوظيح بسيط للطريقة

صراحةً حاولت جاهداً للنجاح فيها ولكن للأسف جميع المحاولاة بائة بالفشل :(

كل اللذي عملته هو إنزال الملف gcc34-20040607.tar.bz2

وقمت بفك الضغط عنه ومن ثم وضعه في البارتشن E

بعد ذالك من موجة الدوس قمت بالدخول على الدايركتوري bin

بالنهاية ظهرت لي النتيجة

E:\thisiscool-gcc\gcc-3.4\bin>

بعد كتابة الامر gcc-lib gui تظهر لي هذه الرساله

'gcc-lib' is not recognized as an internal or external command,
operable program or batch file.

ارجوا منك المساعده

ماهي المشكلة التي تواجهني :(

#16

آسف جدا للخطأ المطبعي

استبدل gcc-lib ب gcj-lib في كل الأوامر.

لا أصدق كم أنا braindead

#17

سأعدل الوثيقة اليوم إن شاء الله.

#18

TheUnforgiven

اشكرك اخوي على تفاعلك معي وحرصك على تجربت الاخوان للموضوع

ابشرك :) اشتغل عندي بعد المحاولة المليون :D كثير من البرامج التي استخدمتها يعطيني اخطا من الكمبايلر لا اعرف السبب فـ الكمبايلر لم يعطني اي خطا ولكن البرنامج يرشدني لبعض السطور يقول لي انها تحتوي على اخطاء او ماشابه ذالك...

جربت برنامج لأحد الاخوان هنا بالمنتدى وهو عبارة عن لعبة للأخ مبتدئ جداً

والحمد لله اشتغلت معي تمام :D

ولكن بعد ماشغلتها وجدت الشكل للـ GUI مختلف تماماً عما هو لدي في الجهاز اللذي يحوي الـ JRE :(

لكن يضل شي ممتاز ومفرح جداً بالنسبة لي...

اشكرك من كل قلبي اخي العزيز

اللي يبغا يشووف المثال :) يقولي ارفع له الملف حجمه 1.90 ميقا

#19

أخيرا تأكيد بالنجاح :)

شكل ال GUI مختلف لأنه سيستخدم عناصر الGUI الأصيلة لويندوز (يعني كأنك تبرمج CPP) ولن يستخدم عناصر Swing أو SWT مع انك تبرمج Swing و AWT. سحر أليس كذلك؟ لكن يظهر يا blue bird أنك غير سعيد بمظهر ال GUI هل يمكن توضيح السبب؟

الأخ هنا

/index.php?showtopic=44476

يسأل عن كيفية جعل الفريم يشبه ستايل الويندوز. في حالتك فإن الفريم هو فريم الويندوز نفسه ولا يحتاج تقليد المظهر.

الآن بعدما قرأت ردك مرة ثانية أظن أنك ربما تعني أن عناصر الواجهة ملخبطة؟

إذا كان هذا هو ماتعنيه فربما تكون المشكلة أن البرمامج يستخدم ال Layouts وربما عناصر ويندوز الأصيلة ليس لديها سلوك شبيه بما في ال Layout. إذا كان هذا الظن في محله فأعتقد أن الحل سهل.

بالنسبة لي أنا لا أستخدم ال Layout أبدا و إنما أضع عناصر الواجهة الرسومية بالX و الY مثل كل لغات البرمجة الأخرى.

كيف تفعل هذا؟

سهل. شيء كهذا

اقتباس
someJFrame.getContentPane().setLayout(null);

someJButton.setBounds(10,40,70,30);

someJFrame.getContentPane().add(someButton);

إذا كان كلامي كله مجرد تجديف فالرجاء لصق لقطة من الشاشة للبرنامح محولا في كل من SDK و GCJ

تم تعديل هذه المشاركة بواسطة TheUnforgiven في 1 أغسطس 2004 في 00:09

#20

:)

مرحباً اخي TheUnforgiven صراحة انا سعيد جداً بالطريقة يكفي اني انشر برامجي للكل وهذا مايهمني اكيد...

الشي اللذي استغربته هو اختلاف شكل الـ GUI مثلما قلت انت لإن الجهاز لا يستعمل مكتبات الـ swing و awt وإنما يظهر لي شكل الـ GUI كـ مظهر الوندز وانا صراحة احب مظهر السونق فهي تعطي شكل جميل جداً ...

وهناك شي آخر وهو اللغة العربية... لاحظت ان البرنامج المحول للطريقة لا يحظر الكلام بالعربي...

ممكن تروون صوورة توظيحيه للبرنامج قبل وبعد التحويل في المرفقات...

post-43-1091366007_thumb.gif

#21

أخ بلوبيرد. أشكرك على لقطات شاشة وعلى مشاركتك عموما في الموضوع و سأنظر إلى موضوع اللغة العربية بمجرد توفر الوقت.

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

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