Cuprins:

Dezvoltare Java eficientă pentru Raspberry Pi: 11 pași (cu imagini)
Dezvoltare Java eficientă pentru Raspberry Pi: 11 pași (cu imagini)

Video: Dezvoltare Java eficientă pentru Raspberry Pi: 11 pași (cu imagini)

Video: Dezvoltare Java eficientă pentru Raspberry Pi: 11 pași (cu imagini)
Video: Cum funcționează Spring Boot și ce este configurarea automată. Magie? 2024, Noiembrie
Anonim

Acest Instructable descrie o abordare foarte eficientă pentru dezvoltarea programelor Java pentru Raspberry Pi. Am folosit abordarea pentru a dezvolta capabilități Java, de la suport pentru dispozitive de nivel scăzut la programe multi-thread și bazate pe rețea. Abordarea nu este doar eficientă, este gratuită!

În principiu, abordarea este dezvoltarea la distanță folosind NetBeans. NetBeans rulează pe o stație de lucru (un computer desktop sau laptop, nu Raspberry Pi) conectat prin Wifi la Raspberry Pi. Odată ce totul este configurat corect, puteți scrie un program Java în NetBeans și apoi un singur clic compilează și construiește programul pe stația de lucru, descarcă programul pe Pi, rulează programul pe Pi și livrează ieșirea în consola NetBeans. Magie! Puteți chiar depana programul care rulează, setând puncte de întrerupere și examinând valori variabile. Mai multă magie!

Restul acestei introduceri descrie motivația pentru utilizarea Java și pentru dezvoltarea la distanță folosind NetBeans. Dacă îți pasă de motivație, citește mai departe. Dacă nu vă pasă, mergeți la pasul 1.

De ce să folosiți Java pe Raspberry Pi?

Există multe limbaje de programare disponibile pentru Raspberry Pi, dar voi limita discuția la limbaje de programare „de calitate profesională” care vizează programe independente, acceptă multi-tasking, permit accesul la hardware și rețea etc. Asta înseamnă Java, Python sau C / C ++. Cele mai recente versiuni de Raspbian includ dezvoltarea și suportul pentru toate aceste limbi.

Python este efectiv „promovat” pentru utilizare pe Pi, cel puțin parțial pentru ușurința învățării pentru noii programatori. Sunt un programator cu experiență și nu îmi place Python din cauza unui antipatic cert subiectiv pentru o serie de caracteristici ale acestuia, de exemplu, tastarea dinamică. Există o caracteristică a Python pentru care antipatia mea este obiectivă - performanța. Această sursă arată că Java este întotdeauna mai rapid decât Python 3 și, de fapt, poate rula de sute de ori mai repede, în funcție de sarcină.

C, după părerea mea, este un „limbaj de mașină de nivel înalt”, adică ceva foarte apropiat de hardware-ul sistemului sau cel puțin de sistemul de operare. Puteți face aproape orice și puteți face acest lucru cât mai repede posibil; de fapt, această sursă sugerează că C poate rula până la 7X la fel de rapid ca Java. De asemenea, nu-mi place C, deoarece (subiectiv) nu-mi plac unele dintre caracteristicile sale pe care le consider arcane, arhaice sau ambele; de exemplu, indicii explicite. În mod obiectiv, faptul că puteți face orice înseamnă că sunteți doar o eroare obscură (de exemplu, aritmetica indicatorului greșit sau o memcpy eronată) departe de suprascrierea memoriei și potențialul de blocare a programului sau chiar a întregului sistem. Java previne astfel de pericole, deci Java este mai sigur. Cred că siguranța îmbunătățește și productivitatea programatorului. Consider C ++ un „înveliș” orientat pe obiecte în jurul lui C care nu face nimic pentru a elimina pericolele de C.

Concluzia: Java este mai rapid decât Python. Java este mai sigur decât C.

Există limitări la utilizarea Java?

Până acum, am reușit să fac tot ce pot face în Java în Python. Există lucruri pe care le poți face în C pe care nu le poți face în Java, dar din nou, până acum tot ce am vrut să fac a fost abordat de fanii Java din comunitatea Pi. Voi oferi un exemplu într-un pas ulterior. Acestea fiind spuse, am achiziționat senzori de la furnizori care furnizau „drivere” pentru senzori numai în Python (sau C / C ++ pentru Arduino), așa că a trebuit să scriu echivalentul Java; efortul suplimentar nu este neapărat productiv, dar poate duce la o mai bună înțelegere a funcționării senzorului.

De ce dezvoltarea la distanță bazată pe NetBeans?

Am constatat că dezvoltarea la distanță bazată pe NetBeans crește foarte mult productivitatea atunci când se utilizează Java pentru Raspberry Pi. Sunt încrezător că puteți utiliza această abordare pentru a crea programe rapide și sigure, datorită caracteristicilor inerente ale Java, în timp ce le scriem, le construim și le depanăm mult mai repede decât alte abordări pe care le-am găsit, datorită dezvoltării la distanță folosind „ clasa NetBeans Integrated Development Environment (IDE).

Ar putea fi util să discutăm pe scurt acele „alte abordări”. Toate îndeplinesc criteriile de bază conform cărora Raspberry Pi nu are conectată tastatură, mouse sau afișaj. Există multe motive pentru acest criteriu, dar motivul meu principal este că dezvolt roboți mobili și nu vreau ca Pi să fie conectat la orice periferic, cu excepția subsistemelor robotizate, chiar și în timpul dezvoltării.

Serverul VNC inclus în Raspbian oferă o interfață grafică de utilizator la distanță (GUI), care permite o formă de dezvoltare la distanță, unde numai GUI la distanță rulează pe stația de lucru și orice altceva, scriere, compilare și construire, are loc pe Pi. Cu VNC este ușor de utilizat instrumentele de dezvoltare capabile Java care sunt livrate în Raspbian, cum ar fi BlueJ, Geany și Greenfoot. Unele dintre acestea pot fi considerate un IDE; cu toate acestea, le găsesc departe de gradul profesional.

Din punct de vedere tehnic, este posibil să instalați un IDE Java de calitate profesională, cum ar fi Eclipse sau NetBeans, pe Raspberry Pi și să îl utilizați de la distanță prin VNC. Rapoartele și bunul simț sugerează că rezultatele ar fi dezamăgitoare, datorită amprentei mari de memorie și a puterii procesorului pe care aceste IDE le necesită, precum și a latenței rețelei introduse de o interfață grafică la distanță.

Atât Eclipse, cât și NetBeans rulează foarte bine pe o stație de lucru. Cu Eclipse, scrierea codului este o experiență plăcută, totuși, construirea programului nu este; descărcarea programului trebuie să aibă loc în afara Eclipse; executarea programului pe Pi este complet independentă de Eclipse. Rezultatul general este un proces în mai mulți pași, aproape dureros, care nu poate suporta depanarea la distanță. NetBeans a încorporat compilarea, construirea, descărcarea, executarea la distanță și depanarea la distanță, făcându-l o abordare superioară.

Pasul 1: configurați Raspberry Pi

Pentru a utiliza abordarea de dezvoltare la distanță, trebuie să începeți prin configurarea țintei Raspberry Pi. Există multe resurse, inclusiv Instructables, disponibile pentru a ajuta la configurarea unui Raspberry Pi. Consultați acest lucru pentru elementele de bază ale configurării Pi (și multe altele).

Acest instructabil vă presupune

  • instalați cel mai recent Raspbian; asigurați-vă că înregistrați ID-ul utilizatorului și parola
  • configurați Wifi și conectați-vă la router (consultați acest lucru); asigurați-vă că înregistrați adresa IP a Pi
  • activați SSH (vedeți acest lucru) pentru a permite accesul de la distanță la Pi de la stația de lucru

După ce ați finalizat configurarea, puteți opri și deconecta afișajul, tastatura și mouse-ul de la Pi. Acesta este unul dintre avantajele cheie ale dezvoltării la distanță. Trebuie să lăsați conectat orice dongle Wifi (nu este necesar, desigur, pentru un model Pi 3 sau Pi Zero W), apoi puteți porni Pi.

Pentru a testa, deschideți un client ssh pe stația dvs. de lucru, de exemplu, Terminal pe MacOS sau chit pe Windows. Apoi introduceți comanda ssh (shell securizat) cu următorul formular:

ssh the_pi_ip_address -l the_pi_user_id

Ar trebui să primiți o solicitare pentru a introduce parola ID-ului dvs. de utilizator Pi. Dacă nu apare nicio solicitare, verificați pentru a vă asigura că ați introdus adresa IP corectă în comanda ssh. Introduceți parola (va fi ascunsă) și ar trebui să vedeți promptul shell-ului Pi care apare așa:

pi @ raspberrypi: ~ $

Dacă nu vedeți solicitarea, verificați ID-ul de utilizator și parola pe care le-ați folosit.

Acum trebuie să găsiți calea către runtime Java și să confirmați că versiunea implicită este Java 8 (ar trebui să fie adevărat pentru cel mai recent Raspbian). Pentru a găsi calea Java runtime, în clientul ssh introduceți comanda

sudo update-alternatives --display java

Ar trebui să vedeți un răspuns cu primele două linii care arată ca următoarele:

java - modul automat

cea mai bună versiune pentru link este / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / bin / java

„-8-” din a doua linie confirmă faptul că timpul de execuție implicit este Java 8. Înregistrați calea în a doua linie, deoarece veți avea nevoie de ea pentru a configura NetBeans pentru dezvoltarea la distanță într-un pas ulterior.

Dacă timpul de rulare implicit nu este Java 8, în clientul ssh introduceți următoarea comandă pentru a comuta la Java 8 (presupunând că este instalat)

sudo update-alternatives --config java

Pasul 2: Instalați NetBeans pe stația de lucru

Acum trebuie să instalați NetBeans pe stația de lucru. Îndreptați browserul stației de lucru către pagina de descărcare NetBeans. Veți vedea mai multe pachete posibile care acceptă cele două ediții Java, precum și alte limbi. Tot ce aveți nevoie pentru dezvoltarea Java pentru Raspberry Pi este Java SE, dar puteți obține pachetul Java EE sau pachetul All. După ce decideți ce pachet doriți, faceți clic pe butonul de descărcare corespunzător. Aici puteți găsi instrucțiuni suplimentare de instalare pentru sistemul de operare al stației de lucru.

După ce ați instalat NetBeans, porniți-l (se poate face automat după instalare). Ar trebui să vedeți fereastra principală NetBeans așa cum se arată în imagine. Imaginea a fost făcută pe un Mac, iar fereastra principală ar putea arăta puțin diferită pe Windows.

După ce ați instalat și ați pornit cu succes NetBeans, treceți la pasul următor.

Pasul 3: Configurați Raspberry Pi ca o platformă la distanță în NetBeans

Configurați Raspberry Pi ca o platformă la distanță în NetBeans
Configurați Raspberry Pi ca o platformă la distanță în NetBeans

Următoarele acțiuni configurează Raspberry Pi ca o platformă Java SE la distanță pentru NetBeans. Aceasta permite NetBeans să descarce și să execute programe Java pe Pi. Aici puteți găsi o descriere oarecum generică.

NOTĂ: În acest pas și în următorii pași, afișez valori specifice mediului meu pentru diverse aspecte ale configurării și codării; al tău va fi, evident, diferit.

Pentru a configura Pi ca o platformă la distanță:

  1. În bara meniului principal NetBeans, selectați Instrumente -> Platforme Java. Veți vedea fereastra pop-up Java Platform Manager (imaginea unu).
  2. Faceți clic pe Adăugați platformă în partea stângă jos. Veți vedea fereastra popup Adăugare platformă Java [tip platformă] (imaginea a doua).
  3. Alegeți Remote Java Standard Edition. Faceți clic pe Următorul. Veți vedea fereastra pop-up Adăugare platformă Java [configurați platforma la distanță] (imaginea trei arată fereastra pop-up după ce am introdus valorile corespunzătoare mediului meu în câmpuri).
  4. În câmpul Nume platformă introduceți un nume pentru Pi. Puteți folosi aproape orice, dar trebuie să fie unic.
  5. În câmpul Gazdă introduceți adresa IP pentru Pi găsit la pasul 1.
  6. În câmpul Nume utilizator introduceți numele de utilizator pe care l-ați utilizat la pasul 1.
  7. Lăsați Utilizare autentificare parolă selectată și în câmpul Parolă introduceți parola pe care ați creat-o la pasul 1.
  8. În câmpul Cale JRE la distanță, trebuie să introduceți cea mai mare parte a căii către runtime Java pe Pi. La pasul 1, a fost / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / bin / java. Cu toate acestea, trebuie să introduceți / bin / java în valoarea câmpului.
  9. NetBeans descarcă programul rulabil într-un director de lucru de pe Pi, identificat în câmpul Working Dir. Implicit este / the_Pi_user_ID / NetBeansProjects / și este perfect acceptabil. Puteți folosi ceva diferit dacă doriți, deși trebuie să fie disponibil pentru ID_Pi_user_ID (imaginea a treia).
  10. Faceți clic pe Finalizare în partea dreaptă jos a ferestrei pop-up. După procesare, ar trebui să vedeți din nou fereastra pop-up Java Platform Manager. Acum ar trebui să vedeți telecomanda Pi (sub numele pe care l-ați folosit în acțiunea 4 de mai sus) la categoria Remote Java SE (imaginea patru).
  11. Faceți clic pe Testare platformă în partea stângă jos pentru a testa conexiunea dintre NetBeans și Pi. Mai întâi veți vedea un popup care spune Verificarea platformei la distanță. Dacă aveți succes, veți primi un al doilea popup care indică conexiunea … stabilită cu succes. Dacă nu, trebuie să verificați și să corectați informațiile pe care le-ați introdus în fereastra pop-up Adăugare platformă Java [configurați platforma la distanță] în acțiunile 5-9 de mai sus. Puteți face acest lucru din fereastra pop-up Java Platform Manager; pur și simplu selectați platforma Pi și apoi editați câmpurile din partea dreaptă a ferestrei pop-up.
  12. După o conexiune reușită, faceți clic pe Închidere în fereastra pop-up Java Platform Manager. Acum veți vedea fereastra principală NetBeans.

Acum poate începe adevărata distracție!

Pasul 4: Creați un proiect Java pe stația de lucru

Aceasta nu intenționează să fie o explicație completă a modului de utilizare a NetBeans sau Java, dar voi descrie acțiunile minime pentru a scrie un program în NetBeans pe stația de lucru și, în cele din urmă, să rulez programul de la distanță pe Raspberry Pi.

În NetBeans trebuie mai întâi să creați un proiect pentru a deține clasa (clasele) Java pentru program. Mai mult, în Java, clasele se află în pachete pentru a sprijini organizarea și securitatea. Pentru a crea proiectul și a crea opțional un pachet și un fișier de clasă:

  1. În fereastra principală NetBeans, faceți clic pe pictograma noului proiect (al doilea din stânga). Veți vedea fereastra popup Proiect nou [alegeți proiectul] (imaginea unu).
  2. Valorile implicite (Categorie: Java, Proiect: Aplicație Java) sunt corecte pentru acest exemplu, deci pur și simplu faceți clic pe Următorul. Veți vedea fereastra pop-up New Java Application [nume și locație] (imaginea a doua arată valorile pentru exemplul meu). NOTĂ: Am redactat informațiile despre utilizator folosind dreptunghiurile colorate.
  3. În câmpul Nume proiect, introduceți un nume valid de proiect Java la alegere. Numele trebuie să înceapă cu o majusculă, iar convenția sugerează majuscule la concatenarea cuvintelor.
  4. Câmpul Locație proiect controlează locul în care se află proiectul în sistemul dvs. de fișiere. Valoarea implicită variază în funcție de sistemul de operare, dar este acceptată în siguranță.
  5. Câmpul Folder proiect vă permite să controlați numele folderului pentru proiect. Mi se pare cel mai bine să folosesc valoarea implicită, care este o concatenare a câmpului Locație și a câmpului Nume.
  6. Când este bifată caseta de selectare Creare clasă principală NetBeans creează automat un pachet și un fișier de clasă principală (un program care poate fi rulat din linia de comandă) cu același nume ca și proiectul. Cred că, de obicei, ar trebui să fie bifat, dar în acest caz, îl voi lăsa bifat, ceea ce elimină acțiunile explicite altfel necesare pentru a face acest lucru (imaginea a doua).
  7. Faceți clic pe Finalizare pentru a crea proiectul, un pachet și un fișier de clasă principală. Acum, panoul din stânga sus al ferestrei principale NetBeans arată proiectul dvs., care conține un singur pachet, care la rândul său conține un singur fișier de clasă cu o metodă main (). Panoul din dreapta sus conține codul sursă implicit pentru clasa principală (programul) generat automat de NetBeans (imaginea a treia).

În acest moment, puteți scrie un cod în metoda principală și îl puteți rula pe stația de lucru. Acest lucru poate fi uneori de dorit, dar este inutil pentru acest instructabil, așa că treceți la pasul următor.

Pasul 5: Configurați proiectul NetBeans pentru a rula de la distanță pe Raspberry Pi

Pentru a configura proiectul NetBeans și un program pe care îl conține, pentru a rula de la distanță pe Raspberry Pi, procedați în felul următor:

  1. Faceți clic dreapta sau cu 2 degete (depinde de sistemul de operare al stației de lucru) pe proiect în panoul Proiecte din fereastra principală NetBeans pentru a afișa meniul proiectului și faceți clic pe Proprietăți. Veți vedea fereastra popup Proprietăți proiect (imaginea afișează fereastra popup cu valorile potrivite pentru exemplul meu).
  2. Sub Categorii din stânga, selectați Executare.
  3. Faceți clic pe Nou în dreapta câmpului Configurare. În fereastra pop-up Creare nouă configurație rezultată, introduceți un nume pentru configurație și faceți clic pe OK. Numele poate fi orice; Tocmai am refolosit numele platformei („My Pi”). Încă o dată veți vedea fereastra popup Proprietăți proiect.
  4. Faceți clic pe pictograma drop-down din dreapta câmpului Runtime Platform. Din lista din fereastra pop-up, selectați platforma la distanță pe care ați creat-o mai devreme (în mediul meu, „My Pi”).
  5. Faceți clic pe OK pentru a configura platforma la distanță pentru proiect. Veți vedea din nou fereastra principală.

Acum sunteți gata să scrieți cod și să rulați programul de la distanță.

Pasul 6: Scrieți un program Java pe stația de lucru și rulați-l pe Raspberry Pi

Panoul din dreapta din fereastra principală NetBeans arată fișierul de clasă principal generat de NetBeans. Tastați o declarație de imprimare simplă în metoda principală a fișierului clasei (imaginea unu). Acum este un program Java complet care face ceva, deși este foarte simplu.

Pentru a rula programul pe Pi, faceți clic pe pictograma Run (săgeata verde orientată spre stânga) din fereastra principală. NetBeans compilează codul, construiește un fișier jar, descarcă fișierul jar în Raspberry Pi identificat de platforma de la distanță, execută programul pe Pi, captează ieșirea (System.out) a programului și ecouri care ies la NetBeans Panoul de ieșire din dreapta jos a ferestrei principale (imaginea a doua).

Acum v-ați extins semnificativ setul de abilități pentru dezvoltarea de proiecte pe Raspberry Pi! Dar asteapta…. Există mai multe!

Pasul 7: Depanați programul Java cu NetBeans

Una dintre cele mai puternice caracteristici ale unui mediu de dezvoltare integrat industrial, precum NetBeans, este abilitatea de a depana programul în timpul rulării. NetBeans vă permite să utilizați întreaga suită de instrumente de depanare în timp ce rulați de la distanță. Aceasta include setarea punctelor de întrerupere la locațiile „importante” sau „supărătoare” din program și examinarea valorii variabilelor la starea de execuție curentă.

Programul simplu din ultimul pas este prea simplu pentru a demonstra depanarea, așa că am adăugat un cod suplimentar programului. Codul suplimentar adaugă două variabile.

Pentru a utiliza instrumentele de depanare, trebuie mai întâi să setați unul sau mai multe puncte de întrerupere. Pentru a seta un punct de întrerupere, faceți clic pe numărul liniei unde doriți să suspendați executarea; apare o pictogramă de dreptunghi roșu, iar întreaga linie capătă un fundal roșu (imaginea unu).

Pentru a depana programul care rulează pe Pi, faceți clic pe pictograma Debug (imediat în dreapta pictogramei Run) din fereastra principală NetBeans. La fel ca în cazul execuției normale, NetBeans compilează, construiește, descarcă, execută, captează ieșirea și ecouri ale ieșirii. Dar, cu depanare, NetBeans oprește execuția la punctele de întrerupere și vă permite să examinați starea de execuție (imaginea a doua, afișând panoul Variabile în dreapta jos).

Execuția se oprește la punctul de întrerupere înainte de a executa instrucțiunea pe linia cu punctul de întrerupere. Fundalul verde indică următoarea instrucțiune de executat. Astfel, în exemplul meu, cu un punct de întrerupere la linia 9, variabila a nu există încă, cu atât mai puțin are o valoare.

Acum deplasați cursorul peste pictograma meniului de depanare din fereastra principală (prima pictogramă dublă săgeată în jos din dreapta pictogramei de depanare) și faceți clic pe pictograma Step Over (are un document albastru în fundal și o săgeată verde în sens invers acelor de ceasornic în prim-plan). [NOTĂ: dacă faceți fereastra principală NetBeans suficient de largă, meniul de depanare se extinde și pictogramele acțiunii de depanare apar în dreapta pictogramei de depanare.] NetBeans execută instrucțiunea la punctul de întrerupere și oprește executarea înainte de următoarea instrucțiune. Veți vedea acum că variabila a există și are valoarea așteptată (imaginea a treia).

Faceți clic pe pictograma Step Over de două ori. Veți vedea că toate cele trei variabile au valori; rețineți că c este încă zero (figura patru).

Faceți clic o dată pe pictograma Step Over. Veți vedea că variabila c are acum valoarea corectă, adică suma variabilelor a și b (imaginea cinci).

În cele din urmă, în meniul de depanare, faceți clic pe pictograma Run (un cerc verde cu o săgeată albă). Aceasta face ca execuția să continue până la următorul punct de întrerupere sau la sfârșitul programului, oricare ar fi primul. Acum apare panoul de ieșire și arată aceeași ieșire ca și în cazul executării normale, în acest caz textul din declarația de tipărire.

Pasul 8: Executați programul independent de NetBeans

Este posibil să vină momentul în care doriți să vă executați programul pe Raspberry Pi, fără „asistență” sau „interferență” de la NetBeans. Este foarte simplu. Mai întâi, deschideți un client ssh către Pi.

Amintiți-vă de la pasul 3 că NetBeans plasează borcanul proiectului într-un director de lucru pe Pi. Baza implicită este / home / pi / NetBeansProjects pentru utilizatorul pi. Directorul specific are același nume ca și proiectul dvs. NetBeans plasează borcanul într-un subdirector numit dist. Pentru exemplul meu, calea completă este / home / pi / NetBeansProjects / MyRemoteProg / dist. În clientul ssh de pe Pi, pentru a executa programul, puteți utiliza comanda java cu opțiunea „jar”:

java -jar /home/pi/NetBeansProjects/MyRemoteProg/dist/MyRemoteProg.jar

Veți vedea rezultatele execuției în clientul ssh; în exemplul meu, ieșirea va fi

Bună ziua de la Raspberry Pi!

Acest lucru funcționează deoarece informațiile din fișierul jar identifică ce clasă principală din jar trebuie executată.

De asemenea, puteți schimba directorul de lucru (prin cd) la locația fișierului jar și apoi puteți emite o comandă mai scurtă pentru a produce aceleași rezultate.

java -jar MyRemoteProg.jar

Pasul 9: Construiți și descărcați, dar nu executați programul prin NetBeans

Există situații în care doriți ca NetBeans să construiască și să descarce programul dvs., dar să nu îl execute. O astfel de situație apare atunci când programul dvs. are nevoie de introducerea tastaturii. Dacă acesta este cazul, folosind tehnica din pasul anterior, odată ce ați construit și descărcat, programul se execută pe Raspberry Pi și așa se așteaptă intrarea tastaturii de la Pi, dar, desigur, nu există nici o tastatură atașată la Pi, deci programul se blochează - nu e bine.

Trebuie să utilizați o tehnică oarecum diferită pentru a executa programul. În esență, creați un fișier de clasă principală „fictiv” care, în esență, nu face nimic și îl identificați ca fiind programul care trebuie executat după descărcare. În acest caz, „manechinul” este executat și puteți rula apoi programul „real” direct pe Pi.

Pentru a utiliza această tehnică, creați mai întâi o nouă clasă principală:

  1. Afișați meniul proiectului ca la pasul 5 și faceți clic pe New-> Java Main Class. Veți vedea fereastra pop-up New Java Main Class.
  2. În câmpul Nume clasă introduceți un nume. Numele poate fi orice îți place; Am folosit „Dummy”. Câmpul Pachet vă permite să identificați pachetul clasei; selectați pachetul folosind meniul derulant din dreapta câmpului. Clasa poate fi în același pachet cu programul dvs. „real” sau într-un pachet diferit; Am pus noua clasă în același pachet. Faceți clic pe Finalizare. Acum veți vedea fereastra principală NetBeans cu noul fișier în panoul din dreapta sus (imaginea unu). Am adăugat o declarație simplă de tipărire despre rularea pe Pi, dar nu este nevoie de nimic.

Pentru a rula „Dummy” după descărcare, trebuie să o faceți „clasa principală de executat în mod implicit” pentru proiect:

  1. Deschideți Proprietățile proiectului ca la pasul 5. Selectați categoria Run. Faceți clic pe Răsfoire în partea dreaptă a câmpului Clasă principală. Veți vedea fereastra popup Răsfoiți cursurile principale (imaginea a doua).
  2. Selectați clasa „Dummy”. Faceți clic pe Selectare clasă principală. Veți vedea din nou proprietățile proiectului.
  3. Faceți clic pe OK. Vei reveni la fereastra principală.

Acum, când faceți clic pe pictograma Executare, NetBeans respectă / construiește întregul proiect, descarcă borcanul care conține toate fișierele clasei în Pi și execută clasa „Dummy” (imaginea a treia).

Pentru a vă executa programul real pe Pi, trebuie să utilizați acum comanda java cu opțiunea „classpath”, care necesită identificarea explicită a clasei principale de executat. De la un client ssh accesați directorul dist pentru proiectul dvs. Comanda corectă este de forma:

java -cp nume_proiect.jar nume_pachet.nume_clasă

Numele_proiect se referă evident la proiect; care se schimbă numai atunci când aveți de-a face cu un nou proiect. Package_name se referă, desigur, la pachet, iar class_name se referă la clasa principală de executat. Așa cum am spus mai devreme, un proiect poate conține multe pachete. În mod similar, un pachet poate conține multe clase și toate ar putea fi clase principale sau programe care pot fi executate din linia de comandă. Astfel, tehnica „classpath” este destul de utilă pentru dezvoltarea de programe sofisticate cu multe clase, dintre care unele sunt clase principale doar pentru a ajuta testarea unitară.

Următoarea comandă execută exemplul meu de program:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

Pasul 10: Utilizați gestionarea bibliotecii NetBeans

Unul dintre cele mai dificile, dar cele mai importante aspecte ale programelor sofisticate este tratarea bibliotecilor, adică codul pe care altcineva l-a scris deja. NetBeans face o treabă admirabilă de a îndepărta cea mai mare parte a durerii gestionării bibliotecii.

Voi folosi ca exemplu Pi4J, care oferă programelor Java acces la Raspberry Pi GPIO, magistrala I2C și alte I / O hardware. Pi4J este doar un exemplu de asistență pentru a face o mulțime de lucruri distractive pe Pi cu Java.

Mai întâi trebuie să descărcați biblioteca pe stația de lucru. Consultați pagina de descărcare Pi4J. Deoarece nu instalați Pi4J pe Pi, descărcați zip-ul pe stația de lucru. Este posibil să fie necesar să dezarhivați în mod explicit odată ce fișierul zip a fost descărcat.

Acum trebuie să creați o „bibliotecă globală” în NetBeans:

  1. În meniul principal NetBeans, faceți clic pe Instrumente -> Biblioteci. Veți vedea fereastra pop-up Ant Library Manager (imaginea unu).
  2. Faceți clic pe Bibliotecă nouă în partea stângă jos. Veți vedea fereastra pop-up New Library (imaginea a doua).
  3. Tastați un nume semnificativ pe care doriți să îl utilizați și faceți clic pe OK. Veți vedea din nou fereastra popup Ant Library Manager. Acum arată noua bibliotecă pe care ați creat-o (imaginea a treia).
  4. Faceți clic pe Adăugați JAR / Folder din dreapta. Veți vedea fereastra pop-up Browse JAR / Folder (imaginea patru).
  5. Navigați la și apoi selectați pi4j-core.jar. Apoi faceți clic pe Adăugare JAR / Folder. Vei reveni la fereastra pop-up Ant Library Manager.
  6. În fereastra pop-up Ant Library Manager, faceți clic pe OK. Veți reveni la fereastra principală NetBeans.

Ați adăugat biblioteca astfel încât să poată fi utilizată în orice proiect. Acum trebuie să adăugați biblioteca la proiectul dvs.:

  1. Afișați fereastra popup Proprietăți proiect (a se vedea pasul 5) și selectați categoria Biblioteci (imaginea cinci).
  2. Faceți clic pe Adăugați bibliotecă în partea dreaptă a ferestrei pop-up. Veți vedea fereastra popup Adăugare bibliotecă (imaginea șase).
  3. Navigați la bibliotecă și selectați-o. Apoi faceți clic pe Adăugați bibliotecă. Veți vedea din nou fereastra popup Proprietăți proiect. Biblioteca apare acum în lista Bibliotecilor în timp de compilare din fereastra pop-up.
  4. În fereastra popup Proprietăți proiect, faceți clic pe OK. Vei reveni la fereastra principală.

Ați adăugat biblioteca la proiectul dvs., astfel încât programul dvs. să o poată utiliza. Puteți face aceeași secvență de acțiuni pentru orice bibliotecă de care aveți nevoie pentru un program.

De trei ori aveți nevoie de bibliotecă - compilați, creați și executați. Din fericire, cu NetBeans, adăugarea bibliotecii așa cum se arată mai sus gestionează toate. Pentru a confirma acest lucru, am creat o altă clasă principală care face minimul absolut necesar pentru a utiliza capacitatea I2C în Pi4J (imaginea șapte). Faptul că nu apar erori înseamnă că se compilează clasa TestPi4J. Dând clic pe Executare, se construiește și se descarcă cu succes; NetBeans descarcă biblioteca în plus față de fișierul jar, astfel încât programul să se execute. Pentru a verifica aceasta din urmă, puteți utiliza tehnica din pasul 9 și în clientul ssh introduceți următoarea comandă (din directorul dist):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

Este instructiv să înțelegem modul în care NetBeans gestionează bibliotecile. În timp ce vă aflați în directorul dist pentru proiectul dvs., listați conținutul directorului (utilizați comanda ls) și veți vedea un subdirector lib. Enumerați conținutul acelui director și veți vedea fișierul jar identificat în biblioteca globală, care în exemplul meu este pi4j-core.jar. Toate bibliotecile pe care le adăugați la proiect vor apărea în directorul lib și, prin urmare, sunt disponibile pentru toate programele din fișierul jar al proiectului.

Pasul 11: Du-te la distracție

Am descris o abordare pentru realizarea unei dezvoltări Java foarte eficiente pentru Raspberry Pi. Raspberry Pi este o tehnologie extrem de populară pentru un spectru larg de proiecte. Java este un limbaj de programare de nivel profesional care oferă avantaje de performanță față de Python și oferă avantaje de siguranță față de C / C ++. NetBeans este un IDE de calitate profesională care crește foarte mult productivitatea programatorului.

Cred că combinația este destul de convingătoare. Acum, du-te și distrează-te folosind combinația pentru proiectele tale.

Recomandat: