جدول المحتويات:
- الخطوة 1: قم بإعداد Raspberry Pi
- الخطوة 2: قم بتثبيت NetBeans على محطة العمل
- الخطوة 3: تكوين Raspberry Pi كنظام أساسي بعيد في NetBeans
- الخطوة 4: قم بإنشاء مشروع Java على محطة العمل
- الخطوة 5: قم بتكوين مشروع NetBeans ليتم تشغيله عن بُعد على Raspberry Pi
- الخطوة 6: اكتب برنامج Java على محطة العمل وقم بتشغيله على Raspberry Pi
- الخطوة 7: تصحيح أخطاء برنامج Java باستخدام NetBeans
- الخطوة 8: قم بتنفيذ البرنامج المستقل عن NetBeans
- الخطوة 9: إنشاء البرنامج وتنزيله ، ولكن لا يتم تنفيذه عبر NetBeans
- الخطوة 10: الاستفادة من إدارة مكتبة NetBeans
- الخطوة 11: استمتع
فيديو: تطوير Java فعال لـ Raspberry Pi: 11 خطوة (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
يصف Instructable طريقة فعالة للغاية لتطوير برامج Java لـ Raspberry Pi. لقد استخدمت النهج لتطوير قدرات Java بدءًا من دعم الجهاز منخفض المستوى إلى البرامج متعددة الخيوط والقائمة على الشبكة. النهج ليس فعالاً فحسب ، بل إنه مجاني!
في الأساس ، النهج هو التطوير عن بعد باستخدام NetBeans. يعمل NetBeans على محطة عمل (كمبيوتر مكتبي أو كمبيوتر محمول ، وليس Raspberry Pi) متصلة عبر Wifi بـ Raspberry Pi. بمجرد إعداد كل شيء بشكل صحيح ، يمكنك كتابة برنامج Java في NetBeans ثم نقرة واحدة لتجميع وبناء البرنامج على محطة العمل ، وتنزيل البرنامج على Pi ، وتشغيل البرنامج على Pi ، وتسليم الإخراج إلى وحدة تحكم NetBeans. سحر! يمكنك حتى تصحيح أخطاء البرنامج قيد التشغيل ، وتحديد نقاط التوقف وفحص القيم المتغيرة. المزيد من السحر!
يصف الجزء المتبقي من هذه المقدمة الدافع لاستخدام Java وللتطوير عن بُعد باستخدام NetBeans. إذا كنت تهتم بالتحفيز ، فتابع القراءة. إذا كنت لا تهتم ، فانتقل إلى الخطوة 1.
لماذا تستخدم Java على Raspberry Pi؟
هناك العديد من لغات البرمجة المتاحة لـ Raspberry Pi ، لكنني سأقصر المناقشة على لغات برمجة "الدرجة الاحترافية" التي تستهدف البرامج المستقلة ، وتدعم تعدد المهام ، وتسمح بالوصول إلى الأجهزة والشبكة ، وما إلى ذلك ، وهذا يعني Java أو Python أو C / C ++. تتضمن أحدث إصدارات Raspbian تطوير ودعم وقت التشغيل لجميع هذه اللغات.
في الواقع ، تم "ترقية" Python لاستخدامها على Pi ، على الأقل جزئيًا لسهولة التعلم للمبرمجين الجدد. أنا مبرمج ذو خبرة ولست مغرمًا ببايثون بسبب كره شخصي معترف به لعدد من خصائصها ، على سبيل المثال ، الكتابة الديناميكية. هناك سمة واحدة لبايثون لا يعجبني فيها موضوعي - الأداء. يوضح هذا المصدر أن Java تكون دائمًا أسرع من Python 3 ، وفي الواقع يمكن تشغيلها أسرع بمئات المرات ، اعتمادًا على المهمة.
C في رأيي ، هي "لغة آلة عالية المستوى" ، أي شيء قريب جدًا من أجهزة النظام ، أو على الأقل نظام التشغيل. يمكنك فعل أي شيء تقريبًا ، ويمكنك القيام بذلك بأسرع ما يمكن ؛ في الواقع ، يشير هذا المصدر إلى أن لغة C يمكنها تشغيل ما يصل إلى 7 أضعاف سرعة جافا. كما أنني لست مغرمًا بـ C لأنني (شخصيًا) لا أحب بعض خصائصها التي أجدها غامضة أو قديمة أو كليهما ؛ على سبيل المثال ، المؤشرات الصريحة. من الناحية الموضوعية ، تعني حقيقة أنه يمكنك فعل أي شيء أنك مجرد خطأ غامض (على سبيل المثال ، مؤشر حسابي سيئ أو memcpy خاطئ) بعيدًا عن الكتابة فوق الذاكرة وربما تعطل البرنامج أو حتى النظام بأكمله. تمنع Java مثل هذه المخاطر ، لذا فإن Java أكثر أمانًا. أشعر أن السلامة تعمل أيضًا على تحسين إنتاجية المبرمج. أنا أعتبر C ++ عبارة عن "غلاف" كائن المنحى حول C ولا يفعل شيئًا للقضاء على مخاطر C.
الخلاصة: جافا أسرع من بايثون. Java أكثر أمانًا من C.
هل توجد قيود عند استخدام Java؟
حتى الآن ، تمكنت من القيام بكل شيء في Java يمكنني القيام به في Python. هناك أشياء يمكن للمرء القيام بها في لغة C لا يستطيع المرء القيام بها في Java ، ولكن مرة أخرى ، كل ما أردت فعله حتى الآن تمت معالجته من قبل عشاق Java في مجتمع Pi. سأقدم مثالاً في خطوة لاحقة. ومع ذلك ، فقد اشتريت أجهزة استشعار من البائعين الذين قدموا "برامج تشغيل" لأجهزة الاستشعار فقط في Python (أو C / C ++ لـ Arduino) ، لذلك اضطررت إلى كتابة مكافئ Java ؛ الجهد الإضافي ليس بالضرورة مثمرًا ، ولكن يمكن أن يؤدي إلى مزيد من التبصر في تشغيل المستشعر.
لماذا التطوير عن بعد على أساس NetBeans؟
لقد اكتشفت أن التطوير عن بُعد المستند إلى NetBeans يزيد بشكل كبير من الإنتاجية عند استخدام Java لـ Raspberry Pi. أنا واثق من أنه يمكنك استخدام النهج لإنشاء برامج سريعة وآمنة ، نظرًا للخصائص المتأصلة في Java ، أثناء كتابتها وبناءها وتصحيحها بسرعة أكبر بكثير من الأساليب الأخرى التي وجدتها ، نظرًا للتطوير عن بُعد باستخدام "المحترف" درجة "بيئة التطوير المتكاملة NetBeans (IDE).
قد يكون من المفيد مناقشة تلك "المناهج الأخرى" بإيجاز. جميعها تفي بالمعايير الأساسية التي لا تحتوي Raspberry Pi على لوحة مفاتيح أو ماوس أو شاشة متصلة. هناك العديد من الأسباب لهذه المعايير ، لكن السبب الأساسي هو أنني أقوم بتطوير روبوتات محمولة ، ولا أريد توصيل Pi بأي أجهزة طرفية باستثناء الأنظمة الفرعية الآلية ، حتى أثناء التطوير.
يوفر خادم VNC المضمن في Raspbian واجهة مستخدم رسومية عن بُعد (GUI) تتيح شكلاً من أشكال التطوير عن بُعد ، حيث يتم تشغيل واجهة المستخدم الرسومية البعيدة فقط على محطة العمل وكل شيء آخر ، الكتابة والتجميع والبناء ، يحدث على Pi. مع VNC ، من السهل استخدام أدوات التطوير التي تدعم Java والتي يتم شحنها في Raspbian ، مثل BlueJ و Geany و Greenfoot. يمكن اعتبار بعض هذه IDE ؛ ومع ذلك ، أجدهم بعيدين عن الدرجة المهنية.
من الممكن تقنيًا تثبيت Java IDE بدرجة احترافية مثل Eclipse أو NetBeans على Raspberry Pi واستخدامه عن بُعد عبر VNC. تشير التقارير والمنطق السليم إلى أن النتائج ستكون مخيبة للآمال ، بسبب البصمة الكبيرة للذاكرة وطاقة وحدة المعالجة المركزية التي تتطلبها IDEs ، بالإضافة إلى زمن انتقال الشبكة الذي توفره واجهة المستخدم الرسومية البعيدة.
يعمل كل من Eclipse و NetBeans بشكل جيد للغاية على محطة العمل. مع Eclipse ، تعد كتابة الكود تجربة ممتعة ، ولكن بناء البرنامج ليس كذلك ؛ يجب أن يتم تنزيل البرنامج خارج Eclipse ؛ تنفيذ البرنامج على Pi مستقل تمامًا عن Eclipse. النتيجة الإجمالية هي عملية متعددة الخطوات ، وشبه مؤلمة ، ولا يمكنها دعم تصحيح الأخطاء عن بُعد. يحتوي NetBeans على خدمات ترجمة وإنشاء وتنزيل وتنفيذ عن بُعد وتصحيح الأخطاء عن بُعد ، مما يجعله أسلوبًا متميزًا.
الخطوة 1: قم بإعداد Raspberry Pi
لاستخدام نهج التطوير عن بعد ، يجب أن تبدأ بإعداد الهدف Raspberry Pi. هناك العديد من الموارد ، بما في ذلك Instructables ، المتاحة للمساعدة في إعداد Raspberry Pi. راجع هذا للتعرف على أساسيات إعداد Pi (والمزيد).
يفترض هذا Instructable أنك
- تثبيت أحدث إصدار من Raspbian ؛ تأكد من تسجيل معرف المستخدم وكلمة المرور Pi
- قم بإعداد Wifi والاتصال بجهاز التوجيه الخاص بك (انظر هذا) ؛ تأكد من تسجيل عنوان IP الخاص بـ Pi
- تمكين SSH (انظر هذا) للسماح بالوصول عن بعد إلى Pi من محطة العمل
بمجرد الانتهاء من الإعداد ، يمكنك إيقاف تشغيل وفصل الشاشة ولوحة المفاتيح والماوس من Pi. هذه واحدة من المزايا الرئيسية للتطوير عن بعد. يجب أن تترك أي Wifi dongle متصلًا (ليس هناك حاجة بالطبع لطراز Pi 3 أو Pi Zero W) ، وبعد ذلك يمكنك تشغيل Pi.
للاختبار ، افتح عميل ssh على محطة العمل الخاصة بك ، على سبيل المثال ، Terminal على MacOS أو المعجون على Windows. ثم أدخل الأمر ssh (Secure shell) بالشكل التالي:
ssh the_pi_ip_address -l the_pi_user_id
يجب أن تحصل على مطالبة بإدخال كلمة مرور معرف مستخدم Pi الخاص بك. إذا لم تظهر أي مطالبة ، فتحقق للتأكد من أنك أدخلت عنوان IP الصحيح في الأمر ssh. أدخل كلمة المرور الخاصة بك (ستكون مخفية) وسترى بعد ذلك موجه Pi shell الذي يظهر شيئًا كالتالي:
pi @ raspberrypi: ~ $
إذا لم تظهر لك المطالبة ، فتحقق من معرف المستخدم وكلمة المرور اللذين استخدمتهما.
الآن يجب عليك العثور على المسار إلى وقت تشغيل Java وتأكيد أن الإصدار الافتراضي هو Java 8 (يجب أن يكون صحيحًا لأحدث Raspbian). للعثور على مسار وقت تشغيل Java ، أدخل الأمر في عميل ssh
sudo update-بدائل - عرض java
من المفترض أن ترى ردًا مع أول سطرين يبدو كما يلي:
جافا - الوضع التلقائي
الرابط الأفضل هو / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / bin / java
يؤكد "-8-" في السطر الثاني أن وقت التشغيل الافتراضي هو Java 8. سجل المسار في السطر الثاني حيث ستحتاج إليه لتكوين NetBeans للتطوير عن بُعد في خطوة لاحقة.
إذا لم يكن وقت التشغيل الافتراضي هو Java 8 ، أدخل الأمر التالي في عميل ssh للتبديل إلى Java 8 (على افتراض أنه مثبت)
sudo update-بدائل --config java
الخطوة 2: قم بتثبيت NetBeans على محطة العمل
أنت الآن بحاجة إلى تثبيت NetBeans على محطة العمل الخاصة بك. قم بتوجيه مستعرض محطة العمل لديك إلى صفحة تنزيل NetBeans. سترى العديد من الحزم المحتملة التي تدعم إصداري Java بالإضافة إلى اللغات الأخرى. كل ما تحتاجه لتطوير Java لـ Raspberry Pi هو Java SE ، ولكن يمكنك الحصول على حزمة Java EE أو الحزمة All. بمجرد تحديد الحزمة التي تريدها ، انقر فوق الزر "تنزيل" المقابل. يمكنك العثور على إرشادات التثبيت الإضافية لنظام التشغيل الخاص بمحطة العمل هنا.
بمجرد تثبيت NetBeans ، ابدأ تشغيله (قد يقوم بذلك تلقائيًا بعد التثبيت). يجب أن ترى نافذة NetBeans الرئيسية كما هو موضح في الصورة. تم التقاط الصورة على جهاز Mac ، وقد تبدو النافذة الرئيسية مختلفة قليلاً على Windows.
بمجرد تثبيت NetBeans وبدء تشغيله بنجاح ، انتقل إلى الخطوة التالية.
الخطوة 3: تكوين Raspberry Pi كنظام أساسي بعيد في NetBeans
تعمل الإجراءات التالية على تكوين Raspberry Pi كمنصة Java SE عن بُعد لـ NetBeans. يتيح ذلك لـ NetBeans تنزيل برامج Java وتنفيذها على Pi. يمكنك العثور على وصف عام إلى حد ما هنا.
ملاحظة: في هذه والخطوات التالية ، أعرض قيمًا خاصة ببيئتي لمختلف جوانب التكوين والتشفير ؛ من الواضح أن لك سيكون مختلفًا.
لتكوين Pi كنظام أساسي بعيد:
- في شريط القائمة الرئيسية لـ NetBeans ، حدد Tools -> Java Platforms. سترى نافذة Java Platform Manager المنبثقة (الصورة الأولى).
- انقر فوق إضافة منصة في أسفل اليسار. سترى نافذة إضافة Java Platform [نوع النظام الأساسي] المنبثقة (الصورة الثانية).
- اختر Remote Java Standard Edition. انقر فوق {التالي. سترى النافذة المنبثقة Add Java Platform [إعداد النظام الأساسي البعيد] (تظهر الصورة الثالثة النافذة المنبثقة بعد إدخال القيم المناسبة لبيئتي في الحقول).
- في حقل Platform Name ، أدخل اسمًا لـ Pi. يمكنك استخدام أي شيء تقريبًا ، ولكن يجب أن يكون فريدًا.
- في حقل المضيف ، أدخل عنوان IP الخاص بـ Pi الموجود في الخطوة 1.
- في حقل اسم المستخدم ، أدخل اسم المستخدم الذي استخدمته في الخطوة 1.
- اترك استخدام مصادقة كلمة المرور محددًا وفي حقل كلمة المرور أدخل كلمة المرور التي أنشأتها في الخطوة 1.
- في حقل Remote JRE Path ، يجب عليك إدخال معظم المسار إلى وقت تشغيل Java على Pi. في الخطوة 1 ، كان / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / bin / java. ومع ذلك ، يجب عليك إسقاط / bin / java في قيمة الحقل.
- يقوم NetBeans بتنزيل البرنامج القابل للتشغيل إلى دليل عمل على Pi ، المحدد في حقل Working Dir. الافتراضي هو / the_Pi_user_ID / NetBeansProjects / وهو مقبول تمامًا. يمكنك استخدام شيء مختلف إذا كنت ترغب في ذلك ، على الرغم من أنه يجب أن يكون متاحًا لـ the_Pi_user_ID (الصورة الثالثة).
- انقر فوق "إنهاء" في أسفل يمين النافذة المنبثقة. بعد المعالجة ، يجب أن ترى مرة أخرى نافذة Java Platform Manager المنبثقة. الآن يجب أن ترى Pi البعيد الخاص بك (تحت الاسم الذي استخدمته في الإجراء 4 أعلاه) ضمن فئة Remote Java SE (الصورة الرابعة).
- انقر فوق Test Platform في أسفل اليسار لاختبار الاتصال بين NetBeans و Pi الخاص بك. سترى أولاً نافذة منبثقة تقول التحقق من النظام الأساسي البعيد. إذا نجحت ، ستحصل على نافذة منبثقة ثانية تشير إلى أن الاتصال… تم إنشاؤه بنجاح. إذا لم يكن الأمر كذلك ، فأنت بحاجة إلى التحقق من المعلومات التي أدخلتها وتصحيحها في النافذة المنبثقة Add Java Platform [إعداد النظام الأساسي البعيد] في الإجراءات 5-9 أعلاه. يمكنك القيام بذلك من نافذة Java Platform Manager المنبثقة ؛ ما عليك سوى تحديد منصة Pi الخاصة بك ثم تحرير الحقول الموجودة على الجانب الأيمن من النافذة المنبثقة.
- بعد اتصال ناجح ، انقر فوق إغلاق في نافذة Java Platform Manager المنبثقة. سترى الآن نافذة NetBeans الرئيسية.
الآن يمكن أن تبدأ المتعة الحقيقية!
الخطوة 4: قم بإنشاء مشروع Java على محطة العمل
لا يُقصد بهذا أن يكون شرحًا كاملاً لكيفية استخدام NetBeans أو Java ، لكنني سأصف الحد الأدنى من الإجراءات لكتابة برنامج في NetBeans على محطة العمل ، وفي النهاية ، قم بتشغيل البرنامج عن بُعد على Raspberry Pi.
في NetBeans ، يجب عليك أولاً إنشاء مشروع لاحتواء فئة (فئات) Java للبرنامج. علاوة على ذلك ، في Java ، توجد الفصول في حزم لدعم التنظيم والأمن. لإنشاء المشروع واختيارياً إنشاء حزمة وملف فئة:
- في نافذة NetBeans الرئيسية ، انقر فوق رمز المشروع الجديد (الثاني من اليسار). سترى المشروع الجديد [اختر المشروع] المنبثقة (الصورة الأولى).
- الإعدادات الافتراضية (الفئة: Java ، المشروع: تطبيق Java) صحيحة في هذا المثال ، لذلك ببساطة انقر فوق التالي. سترى تطبيق Java الجديد المنبثق [الاسم والموقع] (الصورة الثانية تعرض قيمًا لمثالي). ملاحظة: لقد قمت بتنقيح معلومات المستخدم الخاصة بي باستخدام المستطيلات الملونة.
- في حقل اسم المشروع ، أدخل اسم مشروع Java صالحًا من اختيارك. يجب أن يبدأ الاسم بحرف كبير ، وتقترح الاتفاقية حالة الجمل عند ربط الكلمات.
- يتحكم حقل موقع المشروع في مكان وجود المشروع في نظام الملفات الخاص بك. يختلف الإعداد الافتراضي اعتمادًا على نظام التشغيل ، ولكن يمكن قبوله بأمان.
- يسمح لك حقل مجلد المشروع بالتحكم في اسم المجلد الخاص بالمشروع. أجد أنه من الأفضل استخدام الافتراضي ، وهو عبارة عن سلسلة من حقل الموقع وحقل الاسم.
- عند تحديد خانة الاختيار إنشاء فئة رئيسية ، يقوم NetBeans تلقائيًا بإنشاء حزمة وملف فئة رئيسي (برنامج يمكن تشغيله من سطر الأوامر) بنفس اسم المشروع. أعتقد أنه يجب عادةً عدم تحديده ، ولكن في هذه الحالة ، سأتركه محددًا مما يلغي الإجراءات الصريحة اللازمة للقيام بذلك (الصورة الثانية).
- انقر فوق "إنهاء" لإنشاء المشروع وحزمة وملف فصل دراسي رئيسي. الآن يعرض الجزء العلوي الأيسر من نافذة NetBeans الرئيسية مشروعك ، والذي يحتوي على حزمة واحدة ، والتي بدورها تحتوي على ملف فئة واحد باستخدام طريقة main (). يحتوي الجزء العلوي الأيمن على شفرة المصدر الافتراضية للفئة الرئيسية (البرنامج) التي تم إنشاؤها تلقائيًا بواسطة NetBeans (الصورة الثالثة).
في هذه المرحلة ، يمكنك كتابة بعض التعليمات البرمجية بالطريقة الرئيسية وتشغيلها على محطة العمل. قد يكون ذلك مرغوبًا في بعض الأحيان ، ولكنه غير ضروري لهذا Instructable ، لذا انتقل إلى الخطوة التالية.
الخطوة 5: قم بتكوين مشروع NetBeans ليتم تشغيله عن بُعد على Raspberry Pi
لتكوين مشروع NetBeans ، والبرنامج الذي يحتوي عليه ، للتشغيل عن بُعد على Raspberry Pi ، قم بما يلي:
- انقر بزر الماوس الأيمن أو إصبعين (يعتمد على نظام تشغيل محطة العمل) على المشروع في جزء المشاريع من نافذة NetBeans الرئيسية لإظهار قائمة المشروع والنقر فوق خصائص. سترى نافذة خصائص المشروع المنبثقة (تظهر الصورة النافذة المنبثقة مع القيم المناسبة لمثالي).
- ضمن الفئات على اليسار ، حدد تشغيل.
- انقر فوق جديد على يسار حقل التكوين. في النافذة المنبثقة إنشاء تكوين جديد ، أدخل اسمًا للتكوين وانقر فوق موافق. يمكن أن يكون الاسم أي شيء ؛ لقد قمت للتو بإعادة استخدام اسم المنصة ("My Pi"). مرة أخرى سترى نافذة خصائص المشروع المنبثقة.
- انقر فوق أيقونة القائمة المنسدلة على يمين حقل Runtime Platform. من القائمة المنبثقة ، حدد النظام الأساسي البعيد الذي أنشأته مسبقًا (في بيئتي ، "My Pi").
- انقر فوق "موافق" لإعداد النظام الأساسي البعيد للمشروع. سترى النافذة الرئيسية مرة أخرى.
أنت الآن جاهز لكتابة التعليمات البرمجية وتشغيل البرنامج عن بعد.
الخطوة 6: اكتب برنامج Java على محطة العمل وقم بتشغيله على Raspberry Pi
تعرض اللوحة اليمنى في نافذة NetBeans الرئيسية ملف الفئة الرئيسي الذي تم إنشاؤه بواسطة NetBeans. اكتب تعليمة طباعة بسيطة بالطريقة الرئيسية لملف الفصل (الصورة الأولى). إنه الآن برنامج Java كامل يقوم بشيء ما ، على الرغم من أنه شيء بسيط للغاية.
لتشغيل البرنامج على Pi ، انقر فوق رمز التشغيل (السهم الأخضر الذي يشير إلى اليسار) في النافذة الرئيسية. يقوم NetBeans بتجميع الكود ، وإنشاء ملف jar ، وتنزيل ملف jar إلى Raspberry Pi الذي تم تحديده بواسطة النظام الأساسي البعيد ، وتنفيذ البرنامج على Pi ، والتقاط إخراج (System.out) للبرنامج ، وترديد ذلك الإخراج إلى NetBeans جزء الإخراج في أسفل يمين النافذة الرئيسية (الصورة الثانية).
لقد قمت الآن بتوسيع مجموعة مهاراتك بشكل كبير لتطوير المشاريع على Raspberry Pi! لكن انتظر…. هناك أكثر!
الخطوة 7: تصحيح أخطاء برنامج Java باستخدام NetBeans
تتمثل إحدى أقوى ميزات بيئة التطوير المتكاملة للقوة الصناعية مثل NetBeans في القدرة على تصحيح أخطاء البرنامج أثناء التشغيل. يتيح لك NetBeans الاستفادة من المجموعة الكاملة من أدوات تصحيح الأخطاء أثناء التشغيل عن بُعد. يتضمن ذلك تحديد نقاط التوقف في المواقع "المهمة" أو "المزعجة" في البرنامج وفحص قيمة المتغيرات في حالة التنفيذ الحالية.
يعد البرنامج البسيط في الخطوة الأخيرة بسيطًا جدًا لإثبات تصحيح الأخطاء ، لذلك أضفت بعض التعليمات البرمجية الإضافية إلى البرنامج. يضيف الرمز الإضافي متغيرين.
للاستفادة من أدوات التصحيح ، يجب عليك أولاً تعيين نقطة توقف واحدة أو أكثر. لتعيين نقطة توقف ، انقر فوق رقم السطر حيث ترغب في تعليق التنفيذ ؛ تظهر أيقونة مستطيل أحمر ، ويكتسب الخط بأكمله خلفية حمراء (الصورة الأولى).
لتصحيح أخطاء البرنامج الذي يتم تشغيله على Pi ، انقر فوق رمز Debug (على يمين رمز Run مباشرة) في نافذة NetBeans الرئيسية. كما هو الحال مع التنفيذ العادي ، يجمع NetBeans وينشئ وينزل وينفذ ويلتقط المخرجات ويرددها. ولكن مع تصحيح الأخطاء ، يتوقف NetBeans عن التنفيذ عند نقاط التوقف ويسمح لك بفحص حالة التنفيذ (الصورة الثانية ، تظهر جزء المتغيرات في أسفل اليمين).
يتوقف التنفيذ عند نقطة التوقف قبل تنفيذ التعليمات على السطر الذي يحتوي على نقطة التوقف. تشير الخلفية الخضراء إلى البيان التالي الذي سيتم تنفيذه. وهكذا في المثال الخاص بي ، مع وجود نقطة توقف في السطر 9 ، المتغير a غير موجود بعد ، ناهيك عن قيمة المتغير.
الآن قم بتمرير المؤشر فوق رمز قائمة تصحيح الأخطاء في النافذة الرئيسية (أول رمز سهم مزدوج لأسفل على يمين رمز التصحيح) وانقر فوق أيقونة الخطوة فوق (تحتوي على مستند أزرق في الخلفية وسهم أخضر عكس اتجاه عقارب الساعة فى الطليعة). [ملاحظة: إذا جعلت نافذة NetBeans الرئيسية واسعة بما يكفي ، فستتوسع قائمة التصحيح وتظهر أيقونات إجراء التصحيح إلى يمين رمز التصحيح.] ينفذ NetBeans العبارة عند نقطة الإيقاف ويوقف التنفيذ قبل العبارة التالية. سترى الآن أن المتغير a موجود وله القيمة المتوقعة (الصورة الثالثة).
انقر فوق أيقونة Step Over مرتين. سترى أن جميع المتغيرات الثلاثة لها قيم ؛ لاحظ أن c لا يزال صفرًا (الصورة الرابعة).
انقر فوق أيقونة Step Over مرة واحدة. سترى أن المتغير c لديه الآن القيمة المناسبة ، أي مجموع المتغيرين a و b (الصورة الخامسة).
أخيرًا ، في قائمة التصحيح ، انقر فوق رمز التشغيل (دائرة خضراء بسهم أبيض). يؤدي ذلك إلى استمرار التنفيذ إلى نقطة التوقف التالية ، أو إلى نهاية البرنامج ، أيهما يأتي أولاً.يظهر الآن جزء الإخراج ويظهر نفس الإخراج كما هو الحال مع التنفيذ العادي ، في هذه الحالة النص في بيان الطباعة.
الخطوة 8: قم بتنفيذ البرنامج المستقل عن NetBeans
قد يأتي الوقت الذي تريد فيه تنفيذ برنامجك على Raspberry Pi ، دون "مساعدة" أو "تدخل" من NetBeans. أنها بسيطة جدا. أولاً ، افتح عميل ssh على Pi الخاص بك.
تذكر من الخطوة 3 أن NetBeans يضع جرة مشروعك في دليل عمل على Pi. القاعدة الافتراضية هي / home / pi / NetBeansProjects للمستخدم pi. الدليل المحدد له نفس اسم مشروعك. يضع NetBeans الجرة في دليل فرعي يسمى dist. على سبيل المثال ، المسار الكامل هو / home / pi / NetBeansProjects / MyRemoteProg / dist. في عميل ssh على Pi ، لتنفيذ البرنامج ، يمكنك استخدام أمر java مع خيار "jar":
java -jar /home/pi/NetBeansProjects/MyRemoteProg/dist/MyRemoteProg.jar
سترى نتائج التنفيذ في عميل ssh ؛ في المثال الخاص بي ، سيكون الناتج
مرحبًا من Raspberry Pi!
يعمل هذا لأن المعلومات الموجودة في ملف الجرة تحدد الفئة الرئيسية في الجرة التي يجب تنفيذها.
يمكنك أيضًا تغيير دليل العمل (عبر cd) إلى موقع ملف jar ثم إصدار أمر أقصر للحصول على نفس النتائج.
java -jar MyRemoteProg.jar
الخطوة 9: إنشاء البرنامج وتنزيله ، ولكن لا يتم تنفيذه عبر NetBeans
هناك مواقف تريد فيها أن يقوم NetBeans ببناء وتنزيل برنامجك ، ولكن لا تريد تنفيذه. يحدث أحد هذه المواقف عندما يحتاج برنامجك إلى إدخال لوحة المفاتيح. إذا كانت هذه هي الحالة ، باستخدام التقنية الموجودة في الخطوة السابقة ، بمجرد الإنشاء والتنزيل ، يتم تنفيذ البرنامج على Raspberry Pi وبالتالي توقع إدخال لوحة المفاتيح من Pi ، ولكن بالطبع ، لا توجد لوحة مفاتيح متصلة بـ Pi ، لذلك توقف البرنامج - ليس جيدًا.
عليك استخدام أسلوب مختلف نوعا ما لتنفيذ البرنامج. بشكل أساسي ، تقوم بإنشاء ملف فئة رئيسي "وهمي" لا يفعل شيئًا بشكل أساسي ، وتحدده على أنه البرنامج الذي سيتم تنفيذه بعد التنزيل. في هذه الحالة ، يتم تنفيذ "الدمية" ، ويمكنك بعد ذلك تشغيل برنامجك "الحقيقي" مباشرة على Pi.
لاستخدام هذه التقنية ، قم أولاً بإنشاء فئة رئيسية جديدة:
- أظهر قائمة المشروع كما في الخطوة 5 وانقر فوق New-> Java Main Class. سترى نافذة Java Main Class المنبثقة الجديدة.
- في حقل اسم الفصل ، أدخل اسمًا. يمكن أن يكون الاسم أي شيء تريده ؛ لقد استخدمت "الدمية". يسمح لك حقل الحزمة بتحديد حزمة الفئة ؛ حددت الحزمة باستخدام القائمة المنسدلة على يمين الحقل. يمكن أن يكون الفصل في نفس الحزمة مثل برنامجك "الحقيقي" أو في حزمة مختلفة ؛ أضع الفصل الجديد في نفس الحزمة. انقر فوق "إنهاء". سترى الآن نافذة NetBeans الرئيسية مع الملف الجديد في اللوحة اليمنى العلوية (الصورة الأولى). لقد أضفت بيان طباعة بسيطًا حول التشغيل على Pi ، ولكن لا يوجد شيء مطلوب حقًا.
لتشغيل "Dummy" بعد التنزيل ، يجب أن تجعله "فئة رئيسية يتم تنفيذها افتراضيًا" للمشروع:
- افتح خصائص المشروع كما في الخطوة 5. حدد فئة التشغيل. انقر فوق "استعراض" على يسار حقل "الفصل الدراسي الرئيسي". سترى نافذة تصفح الفئات الرئيسية المنبثقة (الصورة الثانية).
- حدد فئة "الدمية". انقر فوق تحديد فئة رئيسية. سترى مرة أخرى خصائص المشروع.
- انقر فوق موافق. ستعود إلى النافذة الرئيسية.
الآن عند النقر فوق رمز التشغيل ، يلتزم NetBeans / يبني المشروع بأكمله ، ويقوم بتنزيل الجرة التي تحتوي على جميع ملفات الفصل إلى Pi ، وينفذ فئة "Dummy" (الصورة الثالثة).
لتنفيذ برنامجك الحقيقي على Pi ، يجب عليك الآن استخدام الأمر java مع خيار "classpath" ، والذي يتطلب منك تحديد الفئة الرئيسية بشكل صريح لتنفيذه. من عميل ssh ، انتقل إلى دليل التوزيع الخاص بمشروعك. الأمر الصحيح هو الشكل:
java -cp project_name.jar package_name.class_name
من الواضح أن اسم المشروع يشير إلى المشروع ؛ لا يتغير إلا عند التعامل مع مشروع جديد. يشير اسم الحزمة بالطبع إلى الحزمة ، ويشير اسم_الفئة إلى الفئة الرئيسية المطلوب تنفيذها. كما ذكرنا سابقًا ، يمكن أن يحتوي المشروع على العديد من الحزم. وبالمثل ، يمكن أن تحتوي الحزمة على العديد من الفئات ، ويمكن أن تكون جميعها فئات أو برامج رئيسية يمكن تنفيذها من سطر الأوامر. وبالتالي ، فإن تقنية "classpath" مفيدة جدًا لتطوير البرامج المعقدة مع العديد من الفئات ، وبعضها عبارة عن فئات رئيسية فقط لمساعدة اختبار الوحدة.
يقوم الأمر التالي بتنفيذ برنامج المثال الخاص بي:
جافا -cp MyRemoteProg.jar myremoteprog. MyRemoteProg
الخطوة 10: الاستفادة من إدارة مكتبة NetBeans
يعد التعامل مع المكتبات من أصعب وأهم جوانب البرامج المعقدة ، أي الكود الذي كتبه شخص آخر بالفعل. يقوم NetBeans بعمل مثير للإعجاب لإزالة معظم آلام إدارة المكتبات.
سأستخدم Pi4J كمثال ، والذي يمنح برامج Java الوصول إلى Raspberry Pi GPIO و I2C bus وغيرها من الأجهزة I / O. Pi4J هو مثال واحد فقط على دعم القيام بالكثير من الأشياء الممتعة على Pi باستخدام Java.
يجب عليك أولاً تنزيل المكتبة على محطة العمل الخاصة بك. راجع صفحة تنزيل Pi4J. نظرًا لأنك لا تقوم بتثبيت Pi4J على Pi ، قم بتنزيل الرمز المضغوط على محطة العمل الخاصة بك. قد تضطر أو لا تضطر إلى فك الضغط بشكل صريح بمجرد تنزيل ملف zip.
يجب الآن إنشاء "مكتبة عالمية" في NetBeans:
- في القائمة الرئيسية لـ NetBeans ، انقر فوق أدوات -> مكتبات. سترى نافذة Ant Library Manager المنبثقة (الصورة الأولى).
- انقر فوق مكتبة جديدة في أسفل اليسار. سترى المكتبة الجديدة المنبثقة (الصورة الثانية).
- اكتب اسمًا ذا معنى تريد استخدامه وانقر فوق "موافق". سترى مرة أخرى نافذة Ant Library Manager المنبثقة. يعرض الآن المكتبة الجديدة التي قمت بإنشائها (الصورة الثالثة).
- انقر فوق Add JAR / Folder على اليمين. سترى نافذة تصفح JAR / المجلد المنبثقة (الصورة الرابعة).
- انتقل إلى pi4j-core.jar ثم حدده. ثم انقر فوق Add JAR / Folder. ستعود إلى نافذة Ant Library Manager المنبثقة.
- في نافذة Ant Library Manager المنبثقة ، انقر فوق OK. ستعود إلى نافذة NetBeans الرئيسية.
لقد قمت بإضافة المكتبة بحيث يمكن استخدامها في أي مشروع. الآن يجب عليك إضافة المكتبة إلى مشروعك:
- أظهر نافذة خصائص المشروع المنبثقة (راجع الخطوة 5) وحدد فئة المكتبات (الصورة الخامسة).
- انقر فوق إضافة مكتبة على الجانب الأيمن من النافذة المنبثقة. سترى نافذة إضافة مكتبة منبثقة (الصورة السادسة).
- انتقل إلى المكتبة وحددها. ثم انقر فوق إضافة مكتبة. سترى مرة أخرى نافذة خصائص المشروع المنبثقة. تظهر المكتبة الآن في قائمة مكتبات وقت الترجمة في النافذة المنبثقة.
- في النافذة المنبثقة "خصائص المشروع" ، انقر فوق "موافق". ستعود إلى النافذة الرئيسية.
لقد أضفت المكتبة إلى مشروعك حتى يتمكن برنامجك من استخدامها. يمكنك القيام بنفس تسلسل الإجراءات لأي مكتبات تحتاجها لبرنامج ما.
هناك ثلاث مرات تحتاج فيها إلى المكتبة - التجميع والبناء والتنفيذ. لحسن الحظ ، مع NetBeans ، فإن إضافة المكتبة كما هو موضح أعلاه تتعامل مع كل شيء. لتأكيد ذلك ، قمت بإنشاء فئة رئيسية أخرى تقوم بالحد الأدنى المطلق الضروري لاستخدام قدرة I2C في Pi4J (الصورة السابعة). حقيقة عدم وجود أخطاء تظهر يعني أن الفئة TestPi4J تجمع. النقر فوق تشغيل يبني وتنزيلات بنجاح ؛ يقوم NetBeans بتنزيل المكتبة بالإضافة إلى ملف jar ، لذلك سيتم تنفيذ البرنامج. للتحقق من هذا الأخير ، يمكنك استخدام التقنية في الخطوة 9 وفي عميل ssh أدخل الأمر التالي (من دليل dist):
جافا -cp MyRemoteProg.jar myremoteprog. TestPi4J
من المفيد فهم كيفية تعامل NetBeans مع المكتبات. أثناء وجودك في دليل dist لمشروعك ، قم بإدراج محتويات الدليل (استخدم الأمر ls) وسترى دليلًا فرعيًا lib. أدرج محتويات هذا الدليل وسترى ملف jar المحدد في المكتبة العالمية ، والتي في المثال الخاص بي هو pi4j-core.jar. ستظهر جميع المكتبات التي تضيفها إلى المشروع في دليل lib ، وبالتالي ستكون متاحة لجميع البرامج في ملف jar الخاص بالمشروع.
الخطوة 11: استمتع
لقد وصفت طريقة لتحقيق تطوير Java فعال للغاية لـ Raspberry Pi. Raspberry Pi هي تقنية ذات شعبية كبيرة لمجموعة واسعة من المشاريع. Java هي لغة برمجة احترافية تقدم مزايا أداء على Python وتوفر مزايا أمان على C / C ++. NetBeans عبارة عن بيئة تطوير متكاملة بدرجة احترافية تزيد بشكل كبير من إنتاجية المبرمج.
أعتقد أن المجموعة مقنعة تمامًا. الآن ، استمتع باستخدام المجموعة لمشاريعك.
موصى به:
لوحة تطوير DIY ESP32 - ESPer: 5 خطوات (بالصور)
مجلس تطوير DIY ESP32 - ESPer: لقد كنت أقرأ مؤخرًا الكثير من إنترنت الأشياء (إنترنت الأشياء) وصدقني ، لم أستطع الانتظار لاختبار أحد هذه الأجهزة الرائعة ، مع القدرة على الاتصال بالإنترنت ، نفسي وأضع يدي في العمل. لحسن الحظ الفرصة
تطوير عصا تحكم آلية قابلة للسحب: 10 خطوات (بالصور)
تطوير عصا التحكم الآلية القابلة للسحب: إن عصا التحكم الآلية القابلة للسحب هي حل منخفض التكلفة لمستخدمي الكراسي المتحركة الكهربائية الذين يواجهون صعوبة في استخدام حوامل عصا التحكم اليدوية المتأرجحة. إنه تكرار تصميم لمشروع جويستيك سابق قابل للسحب يتكون المشروع من
تصميم مجلس تطوير وحدة التحكم الدقيقة: 14 خطوة (بالصور)
تصميم مجلس تطوير وحدة التحكم الدقيقة: هل أنت صانع ، أو هاوٍ ، أو متسلل مهتم بالتقدم من مشاريع اللوح المثالي ، و DIP ICs ، وثنائي الفينيل متعدد الكلور محلي الصنع إلى ثنائي الفينيل متعدد الكلور متعدد الطبقات مصنوع من قبل بيوت متنقلة و تغليف SMD جاهز للإنتاج بالجملة؟ ثم هذه التعليمات لك! هذا GUI
تطوير اللعبة 101: نصائح وحيل: 11 خطوة
تطوير الألعاب 101: النصائح والحيل !: إذن ، هل تحب لعب ألعاب الفيديو؟ ربما حان الوقت ، لقد قمت ببناء واحدة بنفسك! أليست جميلة؟ الفكرة ، أن تحصل على عالمك الخاص ، بناءً على قواعدك وأوهامك؟ أعتقد أنه كذلك ، لكن دعونا ننظر إلى الواقع الآن. تبدأ cr
نظام تطوير Ghetto Programmable Logic (CPLD): 13 خطوة
نظام تطوير Ghetto Programmable Logic (CPLD): على مدار الأشهر العديدة الماضية ، كنت أستمتع بنظام تطوير Ghetto لمعالجات AVR. في الواقع ، أثبتت هذه الأداة التي تبلغ قيمتها صفر دولار تقريبًا أنها رائعة ومفيدة لدرجة أنها دفعتني إلى التساؤل عما إذا كان من الممكن توسيع المفهوم ليشمل F