Obsah:

Efektívny vývoj Javy pre Raspberry Pi: 11 krokov (s obrázkami)
Efektívny vývoj Javy pre Raspberry Pi: 11 krokov (s obrázkami)

Video: Efektívny vývoj Javy pre Raspberry Pi: 11 krokov (s obrázkami)

Video: Efektívny vývoj Javy pre Raspberry Pi: 11 krokov (s obrázkami)
Video: Высокая плотность 2022 2024, Júl
Anonim

Tento návod popisuje veľmi efektívny prístup k vývoju programov Java pre Raspberry Pi. Použil som tento prístup na vývoj funkcií Java, od podpory zariadení nízkej úrovne až po viacvláknové a sieťové programy. Tento prístup je nielen efektívny, ale aj bezplatný!

V zásade ide o vzdialený vývoj pomocou programu NetBeans. NetBeans beží na pracovnej stanici (stolnom alebo prenosnom počítači, nie na Raspberry Pi) pripojenom k Raspberry Pi cez Wifi. Akonáhle je všetko správne nastavené, môžete napísať program Java do programu NetBeans a potom jediným kliknutím program skompilujete a vytvoríte na pracovnej stanici, stiahnete ho do programu Pi, spustíte program na počítači Pi a doručíte výstup do konzoly NetBeans.. Mágia! Môžete dokonca ladiť spustený program, nastaviť zarážky a skúmať hodnoty premenných. Viac kúziel!

Zvyšok tohto úvodu popisuje motiváciu pre používanie Javy a pre vzdialený vývoj pomocou NetBeans. Ak vám záleží na motivácii, čítajte ďalej. Ak vám to nie je jedno, prejdite na krok 1.

Prečo používať Java na Raspberry Pi?

Pre Raspberry Pi je k dispozícii mnoho programovacích jazykov, ale diskusiu obmedzím na programovacie jazyky „na profesionálnej úrovni“, ktoré sa zameriavajú na samostatné programy, podporujú multi-tasking, umožňujú prístup k hardvéru a sieti atď. To znamená Java, Python alebo C/C ++. Najnovšie vydania Raspbian zahŕňajú vývojovú a runtime podporu pre všetky tieto jazyky.

Python je v skutočnosti „propagovaný“na použitie na Pi, aspoň čiastočne pre jeho ľahké učenie sa pre nových programátorov. Som skúsený programátor a Python nemám v obľube kvôli priznanej subjektívnej nechuti k mnohým jeho charakteristikám, napríklad k dynamickému písaniu. Existuje jedna charakteristika Pythonu, pre ktorú je moja nechuť objektívna - výkon. Tento zdroj ukazuje, že Java je vždy rýchlejšia ako Python 3 a v skutočnosti môže bežať stokrát rýchlejšie, v závislosti od úlohy.

C je podľa mňa „strojový jazyk na vysokej úrovni“, tj. Niečo, čo je veľmi blízke hardvéru systému alebo prinajmenšom operačnému systému. Môžete urobiť takmer čokoľvek a môžete to urobiť čo najrýchlejšie; v skutočnosti tento zdroj naznačuje, že C môže bežať až 7 -krát rýchlejšie ako Java. Nemám tiež rád C, pretože sa mi (subjektívne) nepáčia niektoré z jeho charakteristík, ktoré považujem za tajomné, archaické alebo oboje; napríklad explicitné ukazovatele. Objektívne skutočnosť, že môžete robiť čokoľvek, znamená, že ste iba skrytou chybou (napr. Zlou aritmetikou ukazovateľa alebo bludnou memcpy) ďaleko od prepisovania pamäte a potenciálneho zrútenia programu alebo dokonca celého systému. Java takýmto nebezpečenstvám predchádza, takže Java je bezpečnejšia. Mám pocit, že bezpečnosť tiež zvyšuje produktivitu programátora. Považujem C ++ za objektovo orientovaný „obal“okolo C, ktorý nerobí nič, čo by eliminovalo nebezpečenstvo C.

Záver: Java je rýchlejšia ako Python. Java je bezpečnejšia ako C.

Existujú pri používaní Javy nejaké obmedzenia?

Doteraz som v Jave dokázal všetko, čo v Pythone. Sú veci, ktoré človek môže robiť v C, ktoré nemôže robiť v Jave, ale opäť, zatiaľ všetko, čo som chcel urobiť, riešili fanúšikovia Javy v komunite Pi. V neskoršom kroku uvediem príklad. To znamená, že som kúpil senzory od dodávateľov, ktorí dodávali „ovládače“pre senzory iba v Pythone (alebo C/C ++ pre Arduino), takže som musel napísať ekvivalent Java; dodatočné úsilie nie je nevyhnutne produktívne, ale môže mať za následok lepší prehľad o činnosti senzora.

Prečo vzdialený vývoj založený na NetBeans?

Zistil som, že vzdialený vývoj na báze NetBeans výrazne zvyšuje produktivitu pri používaní Javy pre Raspberry Pi. Som si istý, že tento prístup môžete použiť na vytváranie rýchlych a bezpečných programov kvôli inherentným vlastnostiam Javy a ich písanie, vytváranie a ladenie oveľa rýchlejšie ako iné prístupy, ktoré som našiel, vďaka vzdialenému vývoju s použitím „profesionálnych“stupeň „Integrované vývojové prostredie (IDE) NetBeans.

Mohlo by byť užitočné stručne prediskutovať tieto „iné prístupy“. Všetky spĺňajú základné kritériá, podľa ktorých Raspberry Pi nemá pripojenú klávesnicu, myš ani displej. Existuje mnoho dôvodov pre tieto kritériá, ale mojim hlavným dôvodom je, že vyvíjam mobilné roboty a nechcem, aby bol Pi pripojený k akýmkoľvek perifériám okrem robotických subsystémov, dokonca aj počas vývoja.

Server VNC zahrnutý v Raspbiane poskytuje vzdialené grafické užívateľské rozhranie (GUI), ktoré umožňuje formu vzdialeného vývoja, kde na pracovnej stanici beží iba vzdialené GUI a všetko ostatné, písanie, kompilácia a vytváranie, prebieha na počítači Pi. S VNC je ľahké používať vývojové nástroje podporujúce Javu dodávané v Raspbian, ako sú BlueJ, Geany a Greenfoot. Niektoré z nich možno považovať za IDE; nachádzam ich však ďaleko od profesionálnej triedy.

Technicky je možné na Raspberry Pi nainštalovať profesionálne Java IDE ako Eclipse alebo NetBeans a používať ho na diaľku prostredníctvom VNC. Správy a zdravý rozum naznačujú, že výsledky budú sklamaním z dôvodu veľkej pamäte a výkonu CPU, ktoré IDE vyžadujú, ako aj latencie siete zavedenej vzdialeným grafickým rozhraním.

Eclipse aj NetBeans fungujú na pracovnej stanici veľmi dobre. V Eclipse je písanie kódu príjemným zážitkom, zostavenie programu však nie; sťahovanie programu musí prebiehať mimo Eclipse; spustenie programu na Pi je úplne nezávislé od Eclipse. Celkovým výsledkom je viacstupňový, takmer bolestivý proces, ktorý nemôže podporovať vzdialené ladenie. NetBeans má vstavané kompiláty, zostavovanie, sťahovanie, vzdialené spustenie a vzdialené ladenie, čo z neho robí vynikajúci prístup.

Krok 1: Nastavte Raspberry Pi

Ak chcete použiť prístup vzdialeného vývoja, musíte začať nastavením cieľového Raspberry Pi. Existuje mnoho zdrojov vrátane inštrukcií, ktoré sú k dispozícii na pomoc pri inštalácii Raspberry Pi. Prečítajte si o tom základy nastavenia Pi (a ďalšie).

Tento návod vás predpokladá

  • nainštalovať najnovší Raspbian; uistite sa, že ste si zapísali ID používateľa a heslo Pi
  • nastavte Wi -Fi a pripojte sa k smerovaču (pozrite si to); uistite sa, že ste zaznamenali IP adresu Pi
  • povoliť SSH (pozri toto), aby ste umožnili vzdialený prístup k Pi z pracovnej stanice

Po dokončení nastavenia môžete vypnúť a odpojiť displej, klávesnicu a myš z počítača Pi. To je jedna z kľúčových výhod vzdialeného vývoja. Akýkoľvek Wifi dongle musíte nechať pripojený (nie je to potrebné, samozrejme, pre Pi model 3 alebo Pi Zero W) a potom môžete Pi zapnúť.

Na testovanie otvorte na svojej pracovnej stanici klienta ssh, napr. Terminal v systéme MacOS alebo tmel v systéme Windows. Potom zadajte príkaz ssh (bezpečný shell) v nasledujúcom formulári:

ssh the_pi_ip_address -l the_pi_user_id

Mali by ste dostať výzvu na zadanie hesla vášho ID používateľa Pi. Ak sa nezobrazí žiadna výzva, skontrolujte, či ste v príkaze ssh zadali správnu IP adresu. Zadajte svoje heslo (bude skryté) a potom by sa vám mala zobraziť výzva pre shell Pi, ktorá vyzerá takto:

pi@raspberrypi: ~ $

Ak sa výzva nezobrazuje, skontrolujte ID používateľa a heslo, ktoré ste použili.

Teraz musíte nájsť cestu k runtime Java a potvrdiť, že predvolená verzia je Java 8 (mala by platiť pre najnovší Raspbian). Ak chcete nájsť runtime cestu Java, v klientovi ssh zadajte príkaz

sudo update-alternatives --zobraziť javu

Mali by ste vidieť odpoveď s prvými dvoma riadkami, ktoré vyzerajú takto:

java - automatický režim

najlepšia verzia odkazu je/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java

„-8-“v druhom riadku potvrdzuje, že predvolená doba behu je Java 8. Zaznamenajte cestu do druhého riadku, pretože to budete potrebovať na konfiguráciu NetBeans pre vzdialený vývoj v neskoršom kroku.

Ak predvolený runtime nie je Java 8, v klientovi ssh zadajte nasledujúci príkaz na prechod na Java 8 (za predpokladu, že je nainštalovaný)

sudo update-alternatives --config java

Krok 2: Nainštalujte NetBeans na pracovnú stanicu

Teraz musíte na svoju pracovnú stanicu nainštalovať NetBeans. Nasmerujte prehliadač svojej pracovnej stanice na stránku sťahovania programu NetBeans. Uvidíte niekoľko možných balíkov, ktoré podporujú dve vydania Java a ďalšie jazyky. Na vývoj Java pre Raspberry Pi potrebujete iba Java SE, ale môžete získať balík Java EE alebo balík All. Keď sa rozhodnete, ktorý balík chcete, kliknite na zodpovedajúce tlačidlo Stiahnuť. Tu nájdete ďalšie pokyny na inštaláciu operačného systému pracovnej stanice.

Akonáhle máte nainštalovaný NetBeans, spustite ho (môže sa to stať automaticky po inštalácii). Mali by ste vidieť hlavné okno NetBeans, ako je znázornené na obrázku. Fotografia bola urobená na počítači Mac a hlavné okno môže v systéme Windows vyzerať trochu inak.

Keď ste úspešne nainštalovali a spustili NetBeans, pokračujte ďalším krokom.

Krok 3: Konfigurujte Raspberry Pi ako vzdialenú platformu v NetBeans

Nakonfigurujte Raspberry Pi ako vzdialenú platformu v NetBeans
Nakonfigurujte Raspberry Pi ako vzdialenú platformu v NetBeans

Nasledujúce akcie konfigurujú Raspberry Pi ako vzdialenú platformu Java SE pre NetBeans. To umožňuje spoločnosti NetBeans sťahovať a spúšťať programy Java na serveri Pi. Trochu všeobecný popis nájdete tu.

POZNÁMKA: V tomto a nasledujúcich krokoch uvádzam hodnoty špecifické pre moje prostredie pre rôzne aspekty konfigurácie a kódovania; ten tvoj bude očividne iný.

Konfigurácia Pi ako vzdialenej platformy:

  1. Na paneli s ponukami NetBeans vyberte Nástroje -> Platformy Java. Uvidíte vyskakovacie okno Java Platform Manager (obrázok 1).
  2. Vľavo dole kliknite na položku Pridať platformu. Uvidíte vyskakovacie okno Pridať platformu Java [typ platformy] (obrázok dva).
  3. Vyberte Remote Java Standard Edition. Kliknite na Ďalej. Uvidíte vyskakovacie okno Pridať platformu Java [nastaviť vzdialenú platformu] (obrázok tri zobrazuje vyskakovacie okno po zadaní správnych hodnôt pre moje prostredie do polí).
  4. Do poľa Názov platformy zadajte názov Pi. Môžete použiť takmer čokoľvek, ale musí to byť jedinečné.
  5. Do poľa Hostiteľ zadajte IP adresu Pi, ktoré ste našli v kroku 1.
  6. Do poľa Používateľské meno zadajte používateľské meno, ktoré ste použili v kroku 1.
  7. Ponechajte vybraté Použiť autentifikáciu heslom a do poľa Heslo zadajte heslo, ktoré ste vytvorili v kroku 1.
  8. Do poľa Remote JRE Path Path musíte zadať väčšinu cesty k runtime Java na Pi. V kroku 1 to bolo/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java. Musíte však v poli zadať /bin /java.
  9. NetBeans stiahne spustiteľný program do pracovného adresára na Pi, určeného v poli Working Dir. Predvolená hodnota je/the_Pi_user_ID/NetBeansProjects/a je úplne prijateľná. Ak chcete, môžete použiť niečo iné, aj keď to musí byť k dispozícii pre_Pi_user_ID (obrázok tri).
  10. V pravom dolnom rohu kontextového okna kliknite na položku Dokončiť. Po spracovaní by ste mali znova vidieť vyskakovacie okno Java Platform Manager. Teraz by ste mali vidieť svoje diaľkové ovládanie Pi (pod názvom, ktorý ste použili v akcii 4 vyššie) v kategórii Vzdialená Java SE (obrázok štyri).
  11. Kliknutím na položku Testovať platformu v ľavom dolnom rohu otestujte spojenie medzi NetBeans a vašim Pi. Najprv uvidíte vyskakovacie okno s názvom Overenie vzdialenej platformy. Ak bude úspešný, zobrazí sa druhé vyskakovacie okno označujúce pripojenie … úspešne nadviazané. Ak nie, musíte skontrolovať a opraviť informácie, ktoré ste zadali do rozbaľovacieho okna Add Java Platform [set up remote platform] v akciách 5-9 vyššie. Môžete to urobiť z kontextového okna Java Platform Manager; jednoducho vyberte svoju platformu Pi a potom upravte polia na pravej strane kontextového okna.
  12. Po úspešnom pripojení kliknite na vyskakovacie okno Java Platform Manager na položku Zavrieť. Teraz uvidíte hlavné okno NetBeans.

Teraz môže začať skutočná zábava!

Krok 4: Vytvorte projekt Java na pracovnej stanici

Toto nie je zamýšľané ako úplné vysvetlenie toho, ako používať NetBeans alebo Java, ale opíšem minimálne akcie na napísanie programu v programe NetBeans na pracovnej stanici a prípadne spustím program na diaľku na Raspberry Pi.

V programe NetBeans musíte najskôr vytvoriť projekt, ktorý bude uchovávať triedy Java programu. V Jave sú triedy navyše v balíkoch na podporu organizácie a zabezpečenia. Ak chcete vytvoriť projekt a voliteľne vytvoriť balík a súbor triedy:

  1. V hlavnom okne NetBeans kliknite na ikonu nového projektu (2. zľava). Uvidíte vyskakovacie okno Nový projekt [vybrať projekt] (obrázok 1).
  2. Predvolené hodnoty (Kategória: Java, Projekt: Aplikácia Java) sú v tomto prípade správne, takže jednoducho kliknite na Ďalej. Uvidíte vyskakovacie okno Nová aplikácia Java [názov a umiestnenie] (obrázok dva ukazuje hodnoty pre môj príklad). POZNÁMKA: Informácie o svojom používateľovi som upravil pomocou farebných obdĺžnikov.
  3. Do poľa Názov projektu zadajte platný názov projektu Java podľa vlastného výberu. Názov musí začínať veľkým písmenom a podľa konvencie sa pri spájaní slov odporúča používať ťavu.
  4. Pole Umiestnenie projektu určuje, kde sa projekt nachádza vo vašom súborovom systéme. Predvolená hodnota sa líši v závislosti od operačného systému, ale je bezpečné ju prijať.
  5. Pole Priečinok projektu vám umožňuje ovládať názov priečinka projektu. Považujem za najlepšie použiť predvolené nastavenie, ktoré je zreťazením poľa Poloha a poľa Názov.
  6. Keď je začiarknuté políčko Vytvoriť hlavnú triedu, NetBeans automaticky vytvorí balík a súbor hlavnej triedy (program, ktorý je možné spustiť z príkazového riadka) s rovnakým názvom ako projekt. Myslím, že zvyčajne by to malo byť nezaškrtnuté, ale v tomto prípade to nechám začiarknuté, čo eliminuje explicitné akcie, ktoré sú na to inak potrebné (obrázok dva).
  7. Kliknutím na Dokončiť vytvoríte projekt, balík a súbor hlavnej triedy. Teraz ľavá horná tabla hlavného okna NetBeans zobrazuje váš projekt, ktorý obsahuje jeden balík, ktorý zase obsahuje súbor jednej triedy s metódou main (). Pravý horný panel obsahuje predvolený zdrojový kód pre hlavnú triedu (program) automaticky generovaný programom NetBeans (obrázok tri).

V tomto mieste by ste mohli napísať nejaký kód hlavnou metódou a spustiť ho na pracovnej stanici. Niekedy to môže byť žiaduce, ale nie je to potrebné pre tento návod, takže pokračujte ďalším krokom.

Krok 5: Konfigurujte projekt NetBeans tak, aby bežal vzdialene na Raspberry Pi

Ak chcete nakonfigurovať projekt NetBeans a program, ktorý obsahuje, na diaľkové spustenie na Raspberry Pi, postupujte takto:

  1. Kliknutím pravým tlačidlom alebo dvoma prstami (závisí od operačného systému pracovnej stanice) na projekt na table Projekty v hlavnom okne programu NetBeans sa zobrazí ponuka projektu a kliknite na položku Vlastnosti. Uvidíte vyskakovacie okno Vlastnosti projektu (obrázok ukazuje kontextové okno so správnymi hodnotami pre môj príklad).
  2. V časti Kategórie vľavo vyberte položku Spustiť.
  3. Kliknite na položku Nové napravo od poľa Konfigurácia. Do výsledného kontextového okna Vytvoriť novú konfiguráciu zadajte názov konfigurácie a kliknite na tlačidlo OK. Názov môže byť akýkoľvek; Práve som znova použil názov platformy („My Pi“). Opäť sa zobrazí vyskakovacie okno Vlastnosti projektu.
  4. Kliknite na rozbaľovaciu ikonu vpravo od poľa Runtime Platform. V zozname v rozbaľovacom zozname vyberte vzdialenú platformu, ktorú ste vytvorili predtým (v mojom prostredí „My Pi“).
  5. Kliknutím na tlačidlo OK nastavíte vzdialenú platformu pre projekt. Opäť uvidíte hlavné okno.

Teraz ste pripravení napísať kód a spustiť program na diaľku.

Krok 6: Napíšte program Java na pracovnú stanicu a spustite ho na Raspberry Pi

Pravý panel v hlavnom okne NetBeans zobrazuje súbor hlavnej triedy vygenerovaný programom NetBeans. Zadajte jednoduchý príkaz pre tlač v hlavnej metóde súboru triedy (obrázok 1). Teraz je to kompletný program Java, ktorý niečo robí, aj keď niečo veľmi jednoduché.

Ak chcete program spustiť na Pi, kliknite na ikonu Spustiť (zelená šípka smerujúca doľava) v hlavnom okne. NetBeans skomplikuje kód, zostaví súbor jar, stiahne súbor jar do Raspberry Pi identifikovaného vzdialenou platformou, spustí program na Pi, zachytí výstup (System.out) programu a tento výstup odošle do NetBeans Výstupná tabla v pravom dolnom rohu hlavného okna (obrázok dva).

Teraz ste výrazne rozšírili svoje schopnosti pri vývoji projektov na Raspberry Pi! Ale počkaj…. Je toho viac!

Krok 7: Ladenie programu Java pomocou NetBeans

Jednou z najvýkonnejších funkcií priemyselného integrovaného vývojového prostredia, akým je NetBeans, je schopnosť ladiť program počas behu. NetBeans vám umožňuje využiť celú sadu nástrojov na ladenie pri vzdialenom behu. To zahŕňa nastavenie zarážok na „dôležitých“alebo „problémových“miestach v programe a skúmanie hodnoty premenných v aktuálnom stave vykonávania.

Jednoduchý program v poslednom kroku je príliš jednoduchý na to, aby predviedol ladenie, a preto som do programu pridal ďalší kód. Doplnkový kód pridáva dve premenné.

Ak chcete využiť nástroje na ladenie, musíte najskôr nastaviť jeden alebo viac bodov prerušenia. Ak chcete nastaviť bod prerušenia, kliknite na číslo riadku, na ktorom chcete pozastaviť vykonanie; zobrazí sa ikona červeného obdĺžnika a celý riadok bude mať červené pozadie (obrázok 1).

Ak chcete ladiť program spustený na počítači Pi, kliknite na ikonu Debug (bezprostredne napravo od ikony Run) v hlavnom okne programu NetBeans. Rovnako ako pri normálnom spustení, NetBeans tento výstup kompiluje, vytvára, sťahuje, spúšťa, zachytáva a opakuje. Ale s ladením, NetBeans zastaví spustenie na zarážkach a umožní vám preskúmať stav spustenia (obrázok dva, ukazujúci tablu Premenné vpravo dole).

Vykonávanie sa zastaví v bode zlomu pred vykonaním inštrukcie v súlade s bodom prerušenia. Zelené pozadie označuje nasledujúci príkaz, ktorý sa má vykonať. V mojom prípade teda s bodom zlomu na riadku 9 premenná a ešte neexistuje, tým menej má hodnotu.

Teraz umiestnite kurzor na ikonu ponuky ladenia v hlavnom okne (prvá ikona s dvojitou šípkou nadol vpravo od ikony Debug) a kliknite na ikonu Prekročiť (na pozadí je modrý dokument a zelená šípka proti smeru hodinových ručičiek v popredí). [POZNÁMKA: Ak spravíte hlavné okno programu NetBeans dostatočne široké, ponuka ladenia sa rozšíri a ikony akcie ladenia sa zobrazia napravo od ikony Debug.] Program NetBeans vykoná príkaz v bode prerušenia a zastaví vykonanie pred ďalším príkazom. Teraz uvidíte, že premenná a existuje a má očakávanú hodnotu (obrázok tri).

Dvakrát kliknite na ikonu Prekročiť. Uvidíte, že všetky tri premenné majú hodnoty; všimnite si, že c je stále nula (obrázok štyri).

Raz kliknite na ikonu Prejsť. Uvidíte, že premenná c má teraz správnu hodnotu, tj. Súčet premenných a a b (obrázok päť).

Nakoniec v ponuke ladenia kliknite na ikonu Spustiť (zelený kruh s bielou šípkou). To spôsobí, že spustenie bude pokračovať k ďalšiemu bodu prerušenia alebo ku koncu programu, podľa toho, čo nastane skôr. Teraz sa zobrazí tabla Výstup a ukazuje rovnaký výstup ako pri normálnom spustení, v tomto prípade text v tlačovom vyhlásení.

Krok 8: Spustite program nezávisle od NetBeans

Môže prísť čas, keď budete chcieť svoj program spustiť na Raspberry Pi bez „pomoci“alebo „rušenia“od spoločnosti NetBeans. Je to veľmi jednoduché. Najprv otvorte ssh klienta vo svojom Pi.

V kroku 3 si zapamätajte, že NetBeans umiestni vašu projektovú nádobu do pracovného adresára na Pi. Predvolená základňa je/home/pi/NetBeansProjects pre používateľa pi. Konkrétny adresár má rovnaký názov ako váš projekt. NetBeans umiestni nádobu do podadresára nazývaného dist. V mojom prípade je úplná cesta/home/pi/NetBeansProjects/MyRemoteProg/dist. V klientovi ssh na Pi môžete na spustenie programu použiť príkaz java s možnosťou „jar“:

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

Výsledky vykonania uvidíte v klientovi ssh; v mojom prípade bude výstup

Zdravím z Raspberry Pi!

Funguje to, pretože informácie v súbore jar identifikujú, ktorú hlavnú triedu v jar je potrebné vykonať.

Môžete tiež zmeniť pracovný adresár (prostredníctvom disku CD) na umiestnenie súboru jar a potom zadať kratší príkaz na dosiahnutie rovnakých výsledkov.

java -jar MyRemoteProg.jar

Krok 9: Zostavte a stiahnite si, ale nevykonajte program prostredníctvom NetBeans

Existujú situácie, keď chcete, aby program NetBeans zostavil a sťahoval váš program, ale nie ho vykonal. Jedna taká situácia nastane, keď váš program potrebuje vstup z klávesnice. Ak je to tak, pomocou techniky v predchádzajúcom kroku sa program po vytvorení a stiahnutí spustí na Raspberry Pi, a tak očakáva vstup klávesnice z Pi, ale samozrejme k Pi nie je pripojená žiadna klávesnica, takže program visí - nie je dobrý.

Na spustenie programu musíte použiť trochu inú techniku. V zásade vytvoríte „atrapu“súboru hlavnej triedy, ktorý v podstate nič nerobí, a identifikujete ho ako program, ktorý sa má vykonať po stiahnutí. V takom prípade sa „atrapa“spustí a potom môžete spustiť svoj „skutočný“program priamo na počítači Pi.

Ak chcete použiť túto techniku, najskôr vytvorte novú hlavnú triedu:

  1. Vyvolajte ponuku projektu ako v kroku 5 a kliknite na položku Nové-> Hlavná trieda Java. Uvidíte vyskakovacie okno Nová hlavná trieda Java.
  2. Do poľa Názov triedy zadajte názov. Názov môže byť ľubovoľný; Použil som „Dummy“. Pole Package vám umožňuje identifikovať balík triedy; balík vyberiete pomocou rozbaľovacej ponuky vpravo od poľa. Trieda môže byť v rovnakom balíku ako váš „skutočný“program alebo v inom balíku; Novú triedu som zaradil do rovnakého balíka. Kliknite na Dokončiť. Teraz uvidíte hlavné okno NetBeans s novým súborom v pravom hornom paneli (obrázok 1). Pridal som jednoduché tlačové vyhlásenie o spustení na Pi, ale v skutočnosti nič nie je potrebné.

Ak chcete po stiahnutí spustiť „Dummy“, musíte z neho urobiť „hlavnú triedu, ktorá sa má predvolene vykonávať“pre projekt:

  1. Otvorte Vlastnosti projektu ako v kroku 5. Vyberte kategóriu Spustiť. Kliknite na položku Prehľadávať napravo od poľa Hlavná trieda. Uvidíte vyskakovacie okno Prehľadávať hlavné triedy (obrázok dva).
  2. Vyberte triedu „Dummy“. Kliknite na položku Vybrať hlavnú triedu. Ešte raz sa vám zobrazia Vlastnosti projektu.
  3. Kliknite na tlačidlo OK. Vrátite sa do hlavného okna.

Teraz, keď kliknete na ikonu Spustiť, NetBeans vyhovie/zostaví celý projekt, stiahne nádobu obsahujúcu všetky súbory triedy do Pi a spustí triedu „Dummy“(obrázok tri).

Na spustenie skutočného programu na počítači Pi musíte teraz použiť príkaz java s možnosťou „classpath“, ktorá vyžaduje, aby ste výslovne identifikovali hlavnú triedu, ktorá sa má vykonať. Z klienta ssh prejdite do adresára dist pre váš projekt. Správny príkaz má tvar:

java -cp project_name.jar názov_balíka.trieda

Názov_projektu očividne odkazuje na projekt; to sa zmení iba vtedy, keď ide o nový projekt. Názov_balíka samozrejme odkazuje na balík a názov_triedy odkazuje na hlavnú triedu, ktorá sa má vykonať. Ako už bolo povedané, projekt môže obsahovať mnoho balíkov. Podobne balík môže obsahovať mnoho tried a všetky môžu byť hlavnými triedami alebo programami, ktoré je možné vykonať z príkazového riadka. Technika „classpath“je teda celkom užitočná pri vývoji sofistikovaných programov s mnohými triedami, z ktorých niektoré sú hlavnými triedami iba na pomoc pri testovaní jednotiek.

Nasledujúci príkaz spustí môj príklad programu:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

Krok 10: Využite správu knižnice NetBeans

Jedným z najťažších, ale najdôležitejších aspektov sofistikovaných programov je práca s knižnicami, tj. Kód, ktorý už napísal niekto iný. NetBeans odvádza obdivuhodnú prácu a odstraňuje väčšinu bolestí spojených s riadením knižnice.

Ako príklad použijem Pi4J, ktorý poskytuje programom Java prístup k Raspberry Pi GPIO, zbernici I2C a ďalšiemu hardvéru I/O. Pi4J je len jedným z príkladov podpory, ako na Pi s Javou robiť veľa zábavných vecí.

Knižnicu si musíte najskôr stiahnuť na svoju pracovnú stanicu. Pozrite si stránku na stiahnutie Pi4J. Pretože neinštalujete Pi4J na Pi, stiahnite si zip na svoju pracovnú stanicu. Po stiahnutí zipu môžete alebo nemusíte explicitne rozbaliť.

Teraz musíte v programe NetBeans vytvoriť „globálnu knižnicu“:

  1. V hlavnom menu NetBeans kliknite na Nástroje -> Knižnice. Uvidíte vyskakovacie okno Ant Library Manager (obrázok 1).
  2. Vľavo dole kliknite na položku Nová knižnica. Uvidíte vyskakovacie okno Nová knižnica (obrázok dva).
  3. Zadajte zmysluplný názov, ktorý chcete použiť, a kliknite na tlačidlo OK. Opäť sa vám zobrazí vyskakovacie okno Ant Library Manager. Teraz zobrazuje novú knižnicu, ktorú ste vytvorili (obrázok tri).
  4. Vpravo kliknite na položku Pridať JAR/priečinok. Uvidíte vyskakovacie okno Browse JAR/Folder (obrázok štyri).
  5. Prejdite na a potom vyberte pi4j-core.jar. Potom kliknite na položku Pridať JAR/priečinok. Vrátite sa do vyskakovacieho okna Ant Library Manager.
  6. V kontextovom okne Správca knižníc mravcov kliknite na tlačidlo OK. Vrátite sa do hlavného okna NetBeans.

Pridali ste knižnicu, aby ju bolo možné použiť v akomkoľvek projekte. Teraz musíte do svojho projektu pridať knižnicu:

  1. Otvorte vyskakovacie okno Vlastnosti projektu (pozri krok 5) a vyberte kategóriu Knižnice (obrázok päť).
  2. V pravej časti kontextového okna kliknite na položku Pridať knižnicu. Uvidíte vyskakovacie okno Pridať knižnicu (obrázok šesť).
  3. Prejdite do knižnice a vyberte ju. Potom kliknite na položku Pridať knižnicu. Opäť uvidíte vyskakovacie okno Vlastnosti projektu. Knižnica sa teraz zobrazí v zozname knižníc na kompiláciu v kontextovom okne.
  4. V kontextovom okne Vlastnosti projektu kliknite na tlačidlo OK. Vrátite sa do hlavného okna.

Knižnicu ste pridali do svojho projektu, aby ju mohol váš program používať. Rovnakú postupnosť akcií môžete vykonať pre všetky knižnice, ktoré pre program potrebujete.

Knižnicu potrebujete trikrát - kompiláciu, zostavenie a spustenie. Našťastie v prípade NetBeans všetko zvládne pridanie vyššie uvedenej knižnice. Aby som to potvrdil, vytvoril som ďalšiu hlavnú triedu, ktorá robí absolútne minimum potrebné na využitie schopnosti I2C v Pi4J (obrázok sedem). Skutočnosť, že sa nezobrazujú žiadne chyby, znamená, že trieda TestPi4J kompiluje. Kliknutím na položku Spustiť sa úspešne vytvoria a stiahnu; NetBeans okrem súboru jar stiahne aj knižnicu, takže program sa spustí. Na overenie toho druhého môžete použiť techniku v kroku 9 a v ssh klient zadajte nasledujúci príkaz (z adresára dist):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

Je poučné porozumieť tomu, ako NetBeans zaobchádza s knižnicami. V adresári dist pre váš projekt vypíšte obsah adresára (použite príkaz ls) a zobrazí sa podadresár lib. Vytvorte si zoznam obsahu tohto adresára a uvidíte súbor jar identifikovaný v globálnej knižnici, ktorá je v mojom prípade pi4j-core.jar. Všetky knižnice, ktoré pridáte do projektu, sa zobrazia v adresári lib, a preto sú dostupné pre všetky programy v súbore jar projektu.

Krok 11: Choďte sa baviť

Opísal som prístup na dosiahnutie veľmi efektívneho vývoja Javy pre Raspberry Pi. Raspberry Pi je veľmi populárna technológia pre široké spektrum projektov. Java je profesionálny programovací jazyk, ktorý ponúka výkonnostné výhody oproti jazyku Python a ponúka bezpečnostné výhody oproti jazyku C/C ++. NetBeans je profesionálne IDE, ktoré výrazne zvyšuje produktivitu programátora.

Myslím si, že táto kombinácia je veľmi pôsobivá. Teraz sa bavte používať kombináciu svojich projektov.

Odporúča: