الدرس 5: خطوات تنفيذ برنامج مكتوب بلغة Java - SicherheitPro
بواسطة هذا البرنامج الصغير ( المحرر ) يمكنك كتابة برنامج جافا بأكمله بجميع أكواده، بعد ذلك يجب عليك حفظ هذا الكود في ملف بإمتداد : File.java ...
Nov 12, 2015
SicherheitPro

- [الرئيسية](http://www.sicherheitpro.com/)
- عن القالب
- [اتصل بنا](http://sicherheitpro.com/p/blog-page_95.html)
- [الفهرس](http://sicherheitpro.com/p/bptoc-border-0px-solid-000000.html)
- [اتفاقية الاستخدام](http://sicherheitpro.com/p/blog-page_37.html)
- [سياسة الخصوصية](http://sicherheitpro.com/p/privacy-policy.html)

القائمة

[![sicherheitpro](http://1.bp.blogspot.com/-ZXSm2SxUUeY/WGuoeZAqAsI/AAAAAAAABfQ/vD9NlOKwEYkIhOUKUE4eOvCdCanQbTetwCK4B/s1600/header.jpg)](http://www.sicherheitpro.com/)

≡ القائمة

- [الرئيسية](/)
- المدونة
- [أخبار](http://sicherheitpro.com/search/label/اخبار)
- [≡ شروحات](/search/label/شروحات)
  - [شروحات برامج](/search/label/شروحات برامج)
  - [شروحات ڤيديو](http://sicherheitpro.com/search/label/ڤيديو)
  - [شروحات ألعاب](/search/label/العاب)
  - [شروحات تصاميم](/search/label/تصاميم)
- [برمجة](/search/label/برمجة)
- [مقالات](http://sicherheitpro.com/search/label/مقالات)
- [≡ ويندوز](/search/label/ويندوز)
  - [برامج](/search/label/برامج)
  - [اخبار](/search/label/اخبار)
  - [نسخ](/search/label/نسخ)
- [≡ لينكس](/search/label/لينكس)
  - [ادوات](/search/label/ادوات)
  - [شروحات](/search/label/شروحات)
  - [اخبار](/search/label/اخبار)
- [شبكات](http://sicherheitpro.com/search/label/شبكات)
- [فيديوهات](/search/label/فيديوهات)
- [≡ دورات](/search/label/دورات)
  - [اختبار الاختراق](/search/label/اختبار الاختراق)
  - [مواقع/سيرفرات](/search/label/مواقع)
  - [اساليب](/search/label/اساليب)
- ≡ كن على تواصل
  - [يوتيوب](https://www.youtube.com/user/gamezer295)
  - [فيسبوك](https://www.facebook.com/sicherheitpro)
  - [تويتر](https://twitter.com/syr_0f)
  - [جوجل بلس](https://plus.google.com/+Hackers0fsYr/)

أنت الآن في : [الرئيسية](http://www.sicherheitpro.com/ "الصفحة الرئيسية")

/ [برمجة](http://www.sicherheitpro.com/search/label/%D8%A8%D8%B1%D9%85%D8%AC%D8%A9?max-results=6 "برمجة")

/ الدرس 5: خطوات تنفيذ برنامج مكتوب بلغة Java

## الخميس، 12 نوفمبر 2015

## الدرس 5: خطوات تنفيذ برنامج مكتوب بلغة Java

1- المصدر (Source)

2- المترجم(Compiler)

3- نتيجة الترجمة (Output"code")

4-الآلة الافتراضية (Virtual Mashines)

[![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlFZJhC1hGqBILFbRSR-sfHEw1NbSCqh-9mmmXyTpEsPJDPhhcePKwPa4yVw7YTodz_3VkU_sSUEpkpQDJt4DZ15-vCfmIy0XsBfETJ-alPI8mdEcLA_xiWPGp06lcg3mxdKc_VNKoYU/s640/a.png)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlFZJhC1hGqBILFbRSR-sfHEw1NbSCqh-9mmmXyTpEsPJDPhhcePKwPa4yVw7YTodz_3VkU_sSUEpkpQDJt4DZ15-vCfmIy0XsBfETJ-alPI8mdEcLA_xiWPGp06lcg3mxdKc_VNKoYU/s1600/a.png)

محرر النصوص هو عبارة عن برنامج لتحرير ملفات النصوص. حتماً
قد استخدمت أو قابلت واحداً في حياتك، وأبسط هذه المحررات هو الذي يأتي مع
الويندوز وإسمه :

المحرر : Editor، بهذا المحرر يمكنك مثلاً أن تصمم موقعا بأكمله من الصفر! كما يمكنك كتابة أكواد الجافا مباشرةً فيه.

أما أنظمة التشغيل الاخرى فهي أيضاً تحتوي على محرراتها فعلى
سبيل المثال هناك vi على Unix، وكذلك على linux، هناك أيضاً Text edit على
الماكنتوش...

بواسطة هذا البرنامج الصغير ( المحرر ) يمكنك كتابة برنامج
جافا بأكمله بجميع أكواده، بعد ذلك يجب عليك حفظ هذا الكود في ملف بإمتداد :
File.java. لكن هناك مشكلتين اساسيتين سوف لن يحلهما هذا المحرر البسيط؛
المشكلة الأولى هي أنك إن أردت كتابة برنامج كبير، فلن يتحقق لك ذلك إلا
بمشقة الأنفس ! لماذا ؟ .. ببساطة لأن المحرر الذي يأتي مثلاً مدمجاً في
الويندوز لا يحتوي على ألوان تفرق لك كلمات الكود لتسهيل قراءته وكذلك
لتسهيل كتابته، ولا يحتوي على نوافذ متعددة تمكنك من كتابة أكواد عديدة في
نفس النافذة مما يجعل كتابة برنامج كبير أمر شبه مستحيل!

المشكلة الثانية وهي أن كل ماكتبته لن يفيدك بشيء !.. ببساطة لأن كل ما كتبته هو عبارة عن نص لا يفهمه الحاسوب، وانما تفهمه أنت.

إذاً ماهو الحل؟؟ الحل ببساطة هو اننا نحتاج لأداة أخرى تقوم
بترجمة ما قمنا بكتابته من أكواد للغة يفهمها الحاسوب، هذه الأداة هي
المترجم.

![](http://www.mjma3.com/images/stories/Icons/handy-png/32x32/exclamanation_mark.png)**ملاحظة**
: لا ننسى أن هناك محررات نصوص تدعم لغات البرمجة المختلفة، ويمكنك
بمساعدتها كتابة أكواد مفهومة وواضحة كما تساعدك كذلك على التحرير،

نذكر منها : [notpad++](http://notepad-plus-plus.org/)، [Jedit](http://www.jedit.org/)، [UltraEdit](http://www.ultraedit.com/) ..

**المترجم : Compiler**

المترجم هو عبارة عن برنامج يعمل على تحويل وترجمة شيفرات
مكتوبة بلغة معينة أو source code إلى لغة يفهمها الحاسوب و نظام التشغيل.
عادةً ما تتم هذه الترجمة إلى لغات كAssembler أو Bytecode أو لغة الألة،
كما يرمز للبرنامج قبل التحويل بإسم مصدر البرنامج وبعد التحويل يطلق عليه
الناتج. تسمى هذه العملية بعملية الترجمة.

في حالة لغة جافا يقوم المترجم بترجمة النص المكتوب إلى ما يسمى بالبايتكود bytecode.

الكود المكتوب :source code

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)يكون على شكل :example.java

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)وهو الشكل النصي الذي يصف البرنامج ويساعد المبرمج على فهم أوامره (البرنامج).

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)يتكون من سلسلة للأوامر التي يجب على المترجم تنفيذها . هذه البرامج تكون مكتوبة بلغة برمجة معينة وهي الجافا يعني لهجة للكتابة

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)لا يمكن أن يتم تنفيذ الكود المكتوب مباشرة من الحاسوب بل يجب ترجمته

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)الكود المكتوب يمكن أن يترجم إلى شيء اسمه الكود الناتج :bytecode .

الكود الناتج : Bytecode

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)يكون على شكل : example.class

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)هو ناتج ترجمة الكود المكتوب .

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)يمثل البرنامج الحقيقي

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)خفي ويعني هذا أنه لا يمكن قرائته كنص مثلا

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)لا يمكن إعادة ترجمته للكود المكتوب, ربما حفاظا على حق صاحب البرنامج .

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)يمكن تنفيذه على أي نظام تشغيل يتوفر على java virtual machine

bytecode : هو عبارة عن مجموعة من الأوامر للجهاز الوهمي. عند
ترجمة التعليمات البرمجية المصدر من بعض لغات البرمجة أو البيئات \-\- مثل
جافا -- لا يتم إنشاء لغة الحاسوب مباشرة، وإنما رمز وسيط ( Bytecode ).
هذا الرمز هو عادة مستقل عن الهاردوير وبالمقارنة مع شفرة المصدر \-في كثير
من الأحيان\- يكون موجز ومتراص ( compact ).

إذاً مترجم الجافا ينتج ما يسمى كود ناتج محايد التركيبة :
bytecode وهو يترجم فقط عند تنفيذه إما في اللحظة التي يلاحظ فيها أو في
اللحظة التي ينفذ فيها, هذه العملية اسمها JIT : Just In Time Compiler.

عملية الترجمة تتم كالتالي : قمنا بكتابة برنامج بلغة الجافا
في المحرر، بعد ذلك قمنا بحفظه كملف file.java،
الأن تأتي عملية الترجمة، وتتم بمساعدة مترجمات عديدة متوفرة لأنظمة تشغيل
مختلفة منها Javac، الذي يأتي مدمجاً مع JDK كما في الصورة التالية :

![java-compiler](http://www.mjma3.com/images/stories/java/java-compiler.png)

الشرط الأساسي الذي يجب أن يحققه الحاسوب الذي نقوم
بالبرمجة عليه هو أن يتوفر على بيئة الجافا ( مثال على ذلك بسيط فأنت محتاج
لمنزل ومدينة ودولة! لكي تعيش!، وكذلك جافا فهي تحتاج لمكان أو بيئة لكي
تعيش هي الأخرى )

**بيئة التطوير**

كما قلنا فإن بيئة جافا هي أين تعيش جافا، فلابد لها من
مكان لكي تبرمج أكوادها.. ولا يكفي وجود حاسوب "مع الأسف!" لكن يجب وجود
بيئة معينة،هذه البيئة تم تطويرها من طرف Sun Microsystems وقامت هذه
الشركة المطورة بتسميتها JDK Development Kit سنرى إذاً مما يتكون أساساً
ال-JDK

java Development Kit أو أدوات تطوير جافا هي البيئة الكاملة
لتطوير البرامج بلغة الجافا، من دون هذه البيئة لن يتمكن أي حاسوب من تطوير
وتنفيذ أي برنامج مكتوب بلغة جافا.

وهو يحتوي على المكونات التالية :

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)**JRE : Java Runtime Envirement**
ويعتبر المكان الذي تعيش فيه جافا! ففي هذه المنصة ( platform ) تنفذ
البرامج التي قمنا بترجمتها. لكنه لا يعتبر مكان لتطوير البرامج وذلك لأنه
لا يحتوي على المكتبات الخاصة لتطوير الجافا، وكذلك فإنه لا يعتبر أداة
تدخل في تطوير الجافا كالمترجم مثلاً..

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)**مترجم جافا : compiler**
: مترجم الجافا المدمج في JDK هو javac، وله دور ترجمة مصدر البرنامج
للبايتكود Bytecode، مصدر البرنامج يكون بإمتداد .java، وهو عبارة عن أكواد
java نقوم نحن بتحريرها في المحرر.

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)**Java Archiver**:
يأتي برنامج jar مدمج مع أدوات تطوير جافا ( معنى jar بالانجليزية هو قلة
أو جرة )، و هو الذي يقوم بإنتاج ملفات jar. ملف jar هو عبارة عن ملف zip
يمكن أن يحتوي على بيانات وصفية Metadata، هذه الملفات تستعمل في المقام
الأول لتوزيع واحتواء مكتبة جافا.

![](http://www.mjma3.com/images/stories/Icons/handy-png/16x16/check_mark.png)**Javadoc** : هي عبارة عن تعليقات بال إتش تي م ل تقوم بوصف ما تقوم به الكلاس والوظائف ( سوف نتعمق في هذا كله في فقرة خاصة )

من هنا نستنتج أن الجزء المسؤول عن تنفيذ الأكواد في بيئة
التطوير هو JRE ولكي نكون أكثر دقة فإن جزء من ال-JRE بدوره هو المسؤول عن
تنفيذ الأكواد، هذا الجزء يسمى Java Virtual Machine

java virtual machine

آلة جافا الافتراضية أو java virtual machine هي آلة
افتراضية تستخدمها تكنولوجيا جافا لتمكن الحواسيب المختلفة من تشغيل
البرامج المكتوبة بلغة جافا (من ويكيبيديا \- إنتهى)

هي جزء من java runtime environment مسؤول عن تنفيذ الكود
الناتج في الجافا أي bytecode، وأي برنامج بالجافا يتم تنفيذه في آلة
افتراضية خاصة بة في الحالة العادية. الجزء الآخر من JRE هو مكتبة تحتوي
على الكلاسات الأساسية . وهي مبرمجة بلغة السي والسي بلس بلس .

وهي موجودة لأغلب أنظمة التشغيل ومن أجزائها نجد :

- \- classloader وهي لتحميل الكلاسات .
- \- إدارة التخزين و garbage collection حيث أن الجافا تحتوي على إدارة لتنظيف الذاكرة والتخزين أوتوماتيكيا .
- \- excution engine ومعناها وحدة التنفيذ .

لمحة بسيطة عن **garbage collection** :

في لغات البرمجة كالسي بلس بلس نصف الأخطاء  تقريباً تكون
بسبب توزيع أو تخصيص التخزين، وكما نعلم فإن لغة السي بلس بلس هي كذلك لغة
برمجة غرضية التوجه والعمل بالكائنات أو objects يعني دائما خلق و مسح. لكن
الجافا عندها الحل! وهو Java Runtime Environment فهو الذي يقوم بإدارة
هذه الكائنات ومعناه أنها لا يجب أن تحرر ف garbage collector يقوم بمسحها .

[![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0gExi2n4wpwsuuy4yILKUFJxA-1Mot3gRzd7dWtyyUN9rjOBkNUuVIQSvs-s1TOSoenbpADfNBxOI2AZW582IjJWIx5t9DUnFq2yw58YTpgPdlIcMPFpn_lzMkmTLnkAjrozDFmIsFx4/s640/JVM.png)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0gExi2n4wpwsuuy4yILKUFJxA-1Mot3gRzd7dWtyyUN9rjOBkNUuVIQSvs-s1TOSoenbpADfNBxOI2AZW582IjJWIx5t9DUnFq2yw58YTpgPdlIcMPFpn_lzMkmTLnkAjrozDFmIsFx4/s1600/JVM.png)

في الدرس القادم سوف نشرح ما الفرق بين JRE and JVM و الغرض منمترجمJIT

اما الآن تابع الدرس من هنا

[قوقل+](https://plus.google.com/share?url=http://www.sicherheitpro.com/2015/11/5-java.html&imageurl=) [تويتر]( http://twitter.com/home?status=الدرس 5: خطوات تنفيذ برنامج مكتوب بلغة Java -- http://www.sicherheitpro.com/2015/11/5-java.html --  via www.tech-ly.blogspot.com ) [فيس بوك](http://www.facebook.com/share.php? v=4&src=bm&u=http://www.sicherheitpro.com/2015/11/5-java.html&t=الدرس 5: خطوات تنفيذ برنامج مكتوب بلغة Java)

#### مواضيع ذات صلة

الدرس 5: خطوات تنفيذ برنامج مكتوب بلغة Java

4/
5

Oleh
Moayad Almalat

تمّ النشر بـ [نوفمبر 12, 2015](http://www.sicherheitpro.com/2015/11/5-java.html "permanent link")[أضف تعليق](http://www.sicherheitpro.com/2015/11/5-java.html#comment-form)

![Invert Grid](https://2.bp.blogspot.com/-t_Hvcpe2ctk/VjLgiybECWI/AAAAAAAAAQc/6N4oZrOFYVk/s320/150406_152470104924191_2062088094_n.jpg)

#### حول الكاتب

مؤيد الملط: باحث أمني سوري مهتم بكل ما هو جديد بأمن المعلومات ,احب البرمجة بعدة لغات أهمها Java , Paython ,ruby ،

[رسالة أحدث](http://www.sicherheitpro.com/2015/11/blog-post.html "رسالة أحدث")[رسالة أقدم](http://www.sicherheitpro.com/2015/11/eclipse-java.html "رسالة أقدم")[الصفحة الرئيسية](http://www.sicherheitpro.com/)

الاشتراك في:
[تعليقات الرسالة (Atom)](http://www.sicherheitpro.com/feeds/2438070068988338286/comments/default)

## بحث هذه المدونة الإلكترونية

## تابعنا على

- [Follow us on Facebook](http://facebook.com/sicherheitpro "Follow us on Facebook")
- [Follow us on Twitter](https://twitter.com/syr_0f "Follow us on Twitter")
- [Follow us on Google+](https://plus.google.com/+Hackers0fsYr/posts/TT4gnv3Ldce "Follow us on Google+")
- [Follow us on Youtube](https://www.youtube.com/user/gamezer295 "Follow us on Youtube")
- [Follow us on Dribble](https://dribbble.com/syrian-hack "Follow us on Dribble")
- [Follow us on DeviantArt](http://syrian-hack.deviantart.com/ "Follow us on DeviantArt")
- [Follow us on Pinterest](https://www.pinterest.at/sicherheitpro/ "Follow us on Pinterest")

by moayad.almalat. يتم التشغيل بواسطة [Blogger](https://www.blogger.com).

### HacktheBox

## الأقسام

[اخبار](http://www.sicherheitpro.com/search/label/%D8%A7%D8%AE%D8%A8%D8%A7%D8%B1?&max-results=6) 41[اختبار الاختراق](http://www.sicherheitpro.com/search/label/%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1%20%D8%A7%D9%84%D8%A7%D8%AE%D8%AA%D8%B1%D8%A7%D9%82?&max-results=6) 253[شروحات](http://www.sicherheitpro.com/search/label/%D8%B4%D8%B1%D9%88%D8%AD%D8%A7%D8%AA?&max-results=6) 154[لينكس](http://www.sicherheitpro.com/search/label/%D9%84%D9%8A%D9%86%D9%83%D8%B3?&max-results=6) 40[مقالات](http://www.sicherheitpro.com/search/label/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA?&max-results=6) 10

[Privacy Policy](http://www.sicherheitpro.com/p/privacy-policy.html)

\|

[Contact Us](http://www.sicherheitpro.com/p/blog-page_95.html)

## تغريدات

[تغريدات بواسطة @syr\_0f](https://twitter.com/syr_0f)

## اتصل بنا

الاسم

بريد إلكتروني
\*

رسالة
\*

### مواضيع مميزة

- [![الدرس الخامس والعشرون دورة اختبار الاختراق شرح اداة Hping3 ](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1eeoiGfOxR8xI7ZWqnZ8NikwR7TQ0iKRRkVgYWJlIsCsh6KmhB-hpeKFLlQ7HAvdr87gS-35GRxenxFDjbZNzqUXXqmmxkZBi3S-sjdlaR9rb3iZeHSJq4Cx-tBmZIyDaEK5GSDyMFzI/s72-c/Hping3.jpg)](http://www.sicherheitpro.com/2016/03/hping3_19.html)



[الدرس الخامس والعشرون دورة اختبار الاختراق شرح اداة Hping3](http://www.sicherheitpro.com/2016/03/hping3_19.html "الدرس الخامس والعشرون دورة اختبار الاختراق شرح اداة Hping3 ")



هي اداة لـ شبكات الحاسوب ومجموعة من بروتوكلات الاتصال المستحدمة على اانترنت وشبكات الكمبيوتر مماثلة ومن المعروف عموماًًباسم IP/TCP وهو ...

- [![ الدرس الثاني و العشرون دورة اختبار الاختراق شرح اداة ARPing ](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_35xfR4Js3RdrF7nJLzpwoFC6adc6ysQ_UtzodPXiatsOJR6gr5bMRSBb7EgHR6UYmlZXmJ20AjOehfd_jbsY1Hzsi0rwZx_UVqnn-K2ytibj3vHeWH204eNzIc-5v84kOaRCkCKIuZ4/s72-c/mr+roobot%25D8%25B4.jpg)](http://www.sicherheitpro.com/2016/03/arping.html)



[الدرس الثاني و العشرون دورة اختبار الاختراق شرح اداة ARPing](http://www.sicherheitpro.com/2016/03/arping.html " الدرس الثاني و العشرون دورة اختبار الاختراق شرح اداة ARPing ")



ARP  هي اختصار لكلمة "بروتكول تحليل العناوين"  \| Address Resolution Protocol   يستخدم لرسم خرائط الشبكة بمعنى (يعني انه ي...

- [![الدرس 258 شرح اداة safecopy](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSfNnQHYG_U5ngWOD-5G84LG1edvFoeb0FOC4G9-G9rRBM-Gqs05LQdKUn4YFt8eIocmrUtk7EwwfgHGCLkUx-9oEVlgCLKNaogHXBBrXxNydJFaiYzRDmyt4HWPaeAJNi_a5o6HDsi44/s72-c/safecopy.png)](http://www.sicherheitpro.com/2019/11/258-safecopy.html)



[الدرس 258 شرح اداة safecopy](http://www.sicherheitpro.com/2019/11/258-safecopy.html "الدرس 258 شرح اداة safecopy")


جميع الحقوق محفوظة لموقع © [sicherheitpro](http://www.sicherheitpro.com/ "sicherheitpro")

تعريب [عرب ويب](http://www.ar1web.com/ "قوالب بلوجر")
تصميم [Arlina Design](http://www.arlinadzgn.com)

تعريب [عرب ويب](http://www.ar1web.com/ "قوالب بلوجر")
تصميم [Arlina Design](http://www.arlinadzgn.com)