Tartalomjegyzék:

Hatékony Java fejlesztés a Raspberry Pi számára: 11 lépés (képekkel)
Hatékony Java fejlesztés a Raspberry Pi számára: 11 lépés (képekkel)

Videó: Hatékony Java fejlesztés a Raspberry Pi számára: 11 lépés (képekkel)

Videó: Hatékony Java fejlesztés a Raspberry Pi számára: 11 lépés (képekkel)
Videó: Leap Motion SDK 2024, Július
Anonim

Ez az utasítás nagyon hatékony megközelítést ír le a Raspberry Pi számára Java programok fejlesztésére. Ezt a megközelítést használtam a Java képességek fejlesztéséhez, az alacsony szintű eszköztámogatástól a többszálas és hálózati alapú programokig. A megközelítés nemcsak hatékony, hanem ingyenes is!

Alapvetően a megközelítés a NetBeans -t használó távoli fejlesztés. A NetBeans egy munkaállomáson (asztali vagy laptop számítógépen, nem a Raspberry Pi -n) fut, amely Wifi -n keresztül csatlakozik a Raspberry Pi -hez. Ha minden megfelelően be van állítva, írhat Java programot a NetBeans -be, majd egyetlen kattintással lefordítja és felépíti a programot a munkaállomáson, letölti a programot a Pi -re, futtatja a programot a Pi -n, és kimenetet továbbít a NetBeans konzolra.. Varázslat! Még a futó program hibakeresését, a töréspontok beállítását és a változóértékek vizsgálatát is elvégezheti. Még több varázslat!

A bevezető további része a Java és a NetBeans távoli fejlesztésének motivációját írja le. Ha érdekel a motiváció, olvass tovább. Ha nem érdekli, folytassa az 1. lépéssel.

Miért érdemes Java -t használni a Raspberry Pi -n?

A Raspberry Pi számára számos programozási nyelv áll rendelkezésre, de a vitát "professzionális szintű" programozási nyelvekre korlátozom, amelyek önálló programokat céloznak meg, támogatják a többfeladatos munkát, engedélyezik a hardver- és hálózati hozzáférést stb. Ez Java, Python vagy C/C ++. A Raspbian legújabb kiadásai mindezen nyelvek fejlesztését és futásidejű támogatását tartalmazzák.

A Python gyakorlatilag "népszerűsített" a Pi-n való használatra, legalábbis részben azért, mert könnyen tanulható az új programozók számára. Tapasztalt programozó vagyok, és nem kedvelem a Python -t, mivel számos jellemzője, például a dinamikus gépelés, bevallottan szubjektív ellenszenve. A Pythonnak van egy olyan tulajdonsága, amely ellenszenvem tárgyilagos - a teljesítmény. Ez a forrás azt mutatja, hogy a Java mindig gyorsabb, mint a Python 3, és valójában a feladattól függően százszor gyorsabban tud futni.

A C véleményem szerint "magas szintű gépi nyelv", azaz valami, ami nagyon közel áll a rendszer hardveréhez, vagy legalábbis az operációs rendszerhez. Nagyjából bármit megtehetsz, és körülbelül a lehető leggyorsabban; valójában ez a forrás azt sugallja, hogy a C akár 7X olyan gyorsan tud futni, mint a Java. Nem szeretem a C -t sem, mert (szubjektíven) nem kedvelem egyes tulajdonságait, amelyeket árkának, archaikusnak vagy mindkettőnek találok; például kifejezett mutatókat. Objektíven az a tény, hogy bármit megtehet, azt jelenti, hogy csak egy homályos hiba (pl. Rossz mutatószámítás vagy hibás memcpy) van a memória felülírásától és a program vagy akár az egész rendszer összeomlásától. A Java megakadályozza az ilyen veszélyeket, így a Java biztonságosabb. Úgy érzem, a biztonság a programozók termelékenységét is javítja. A C ++ -t objektum-orientált "burkolónak" tartom C körül, amely semmit sem tesz a C veszélyeinek kiküszöbölése érdekében.

A lényeg: a Java gyorsabb, mint a Python. A Java biztonságosabb, mint a C.

Vannak korlátozások a Java használatakor?

Eddig mindent meg tudtam tenni Java -ban, amit a Pythonban. Vannak dolgok, amelyeket az ember C -ben megtehet, amit a Java -ban nem, de ismétlem, eddig mindazt, amit szerettem volna, a Java -rajongók foglalkoztak a Pi közösségben. Egy példát mondok egy későbbi lépésben. Ennek ellenére vásároltam olyan érzékelőktől érzékelőket, amelyek csak illesztőprogramokat szállítottak az érzékelőkhöz a Pythonban (vagy C/C ++ az Arduino esetében), ezért meg kellett írnom a Java megfelelőjét; az extra erőfeszítés nem feltétlenül produktív, de nagyobb betekintést eredményezhet az érzékelő működésébe.

Miért a NetBeans -en alapuló távoli fejlesztés?

Azt tapasztaltam, hogy a NetBeans-alapú távoli fejlesztés nagymértékben növeli a termelékenységet, amikor Java-t használ a Raspberry Pi számára. Bízom benne, hogy a Java rejlő tulajdonságai miatt gyors és biztonságos programok létrehozására használhatja ezt a módszert, miközben sokkal gyorsabban írhat, építhet és hibakereshet, mint más módszerek, amelyeket találtam, a "professzionális évfolyam "NetBeans integrált fejlesztési környezet (IDE).

Hasznos lehet röviden megvitatni ezeket a "más megközelítéseket". Mindegyik megfelel az alapvető feltételeknek, miszerint a Raspberry Pi nem rendelkezik billentyűzettel, egérrel vagy kijelzővel. Ennek a kritériumnak sok oka van, de elsődleges okom az, hogy mobil robotokat fejlesztek, és nem akarom, hogy a Pi bármilyen fejlesztési folyamat alatt csatlakozzon a perifériákhoz, kivéve a robot alrendszereket.

A Raspbianban található VNC szerver egy távoli grafikus felhasználói felületet (GUI) biztosít, amely lehetővé teszi a távoli fejlesztés egy formáját, ahol csak a távoli GUI fut a munkaállomáson, és minden más, az írás, a fordítás és az építés a Pi -n történik. A VNC segítségével könnyen használhatók a Java-képes fejlesztőeszközök, amelyek Raspbian nyelven kerülnek forgalomba, mint a BlueJ, Geany és Greenfoot. Ezek egy része IDE -nek tekinthető; mindazonáltal távol tartom őket a szakmai fokozattól.

Technikailag lehetséges a professzionális szintű Java IDE, például az Eclipse vagy a NetBeans telepítése a Raspberry Pi -re, és távoli használat a VNC -n keresztül. A jelentések és a józan ész azt sugallják, hogy az eredmények csalódást okozhatnak az ilyen IDE -k nagy memóriaterületének és CPU -teljesítményének, valamint a távoli grafikus felhasználói felület által bevezetett hálózati késésnek köszönhetően.

Az Eclipse és a NetBeans is nagyon jól fut egy munkaállomáson. Az Eclipse segítségével a kód írása kellemes élmény, azonban a program felépítése nem; a program letöltésének az Eclipse -en kívül kell történnie; a program futtatása a Pi -n teljesen független az Eclipse -től. Az eredmény egy többlépcsős, szinte fájdalmas folyamat, amely nem támogatja a távoli hibakeresést. A NetBeans beépített fordítást, összeállítást, letöltést, távoli végrehajtást és távoli hibakeresést tartalmaz, így kiváló megközelítés.

Lépés: Állítsa be a Raspberry Pi -t

A távoli fejlesztési megközelítés használatához először a cél Raspberry Pi beállításával kell kezdeni. Számos erőforrás áll rendelkezésre, köztük az Instructables, amelyek segítenek a Raspberry Pi beállításában. Tekintse meg a Pi beállításának alapjait (és így tovább).

Ez az Instructable téged feltételez

  • telepítse a legújabb Raspbian programot; feltétlenül rögzítse a Pi felhasználói azonosítót és jelszót
  • állítsa be a Wifit és csatlakozzon az útválasztóhoz (lásd ezt); győződjön meg róla, hogy rögzítette a Pi IP -címét
  • engedélyezze az SSH -t (lásd ezt), hogy lehetővé tegye a Pi távoli elérését a munkaállomásról

A beállítás befejezése után kikapcsolhatja és leválaszthatja a kijelzőt, a billentyűzetet és az egeret a Pi -ről. Ez a távoli fejlesztés egyik legfontosabb előnye. Hagynia kell minden Wifi -kulcsot csatlakoztatva (természetesen nem szükséges a Pi 3 vagy Pi Zero W esetén), majd bekapcsolhatja a Pi -t.

A teszteléshez nyisson meg egy ssh klienst a munkaállomáson, például a terminált MacOS rendszeren vagy a puttyt Windows rendszeren. Ezután írja be az ssh (biztonságos héj) parancsot a következő űrlappal:

ssh the_pi_ip_address -l the_pi_user_id

Kérnie kell a Pi felhasználói azonosító jelszavát. Ha nem jelenik meg prompt, ellenőrizze, hogy a helyes IP -címet adta -e meg az ssh parancsban. Írja be jelszavát (el lesz rejtve), és akkor látnia kell a Pi héj parancsát, amely valahogy így jelenik meg:

pi@málna: ~ $

Ha nem látja a kérést, ellenőrizze a használt felhasználói azonosítót és jelszót.

Most meg kell találnia a Java futási idő elérési útját, és meg kell erősítenie, hogy az alapértelmezett verzió a Java 8 (igaz a legújabb Raspbian esetében). A Java futásidejű útvonal megkereséséhez írja be a parancsot az ssh kliensbe

sudo update-alternatives --display java

Választ kell látnia az első két sorban, amelyek így néznek ki:

java - automatikus mód

a legjobb link a/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java

A "-8-" a második sorban megerősíti, hogy az alapértelmezett futási idő a Java 8. Rögzítse az elérési utat a második sorban, ahogyan arra szüksége lesz a NetBeans távoli fejlesztéshez történő konfigurálásához egy későbbi lépésben.

Ha az alapértelmezett futási idő nem a Java 8, írja be az ssh kliensben a következő parancsot a Java 8 -ra való váltáshoz (feltéve, hogy telepítve van)

sudo update-alternatives --config java

2. lépés: Telepítse a NetBeans -t a munkaállomásra

Most telepítenie kell a NetBeans -t a munkaállomásra. Irányítsa a munkaállomás böngészőjét a NetBeans letöltési oldalára. Több lehetséges csomagot fog látni, amelyek támogatják a Java két kiadását, valamint más nyelveket. A Raspberry Pi Java fejlesztéséhez csak a Java SE szükséges, de beszerezhető a Java EE vagy az All csomag. Miután eldöntötte, hogy melyik csomagot szeretné, kattintson a megfelelő Letöltés gombra. A munkaállomás operációs rendszeréhez tartozó további telepítési utasításokat itt találja.

A NetBeans telepítése után indítsa el (ez a telepítés után automatikusan megtörténhet). Látnia kell a NetBeans főablakát, amint az a képen látható. A kép Mac -en készült, és a főablak kissé másként nézhet ki Windows rendszeren.

A NetBeans sikeres telepítése és elindítása után folytassa a következő lépéssel.

3. lépés: A Raspberry Pi konfigurálása távoli platformként a NetBeans szolgáltatásban

Konfigurálja a Raspberry Pi -t távoli platformként a NetBeans -ben
Konfigurálja a Raspberry Pi -t távoli platformként a NetBeans -ben

Az alábbi műveletek konfigurálják a Raspberry Pi -t távoli Java SE platformnak a NetBeans számára. Ez lehetővé teszi a NetBeans számára, hogy Java programokat töltsön le és futtasson a Pi -n. Itt talál egy kissé általános leírást.

MEGJEGYZÉS: Ebben és a következő lépésekben a környezetemre jellemző értékeket mutatom be a konfiguráció és a kódolás különböző aspektusaihoz; a tied nyilván más lesz.

A Pi konfigurálása távoli platformként:

  1. A NetBeans főmenüjében válassza az Eszközök -> Java platformok lehetőséget. Látni fogja a Java Platform Manager előugró ablakát (első kép).
  2. Kattintson a Platform hozzáadása elemre a bal alsó sarokban. Látni fogja a Java platform hozzáadása [platform típusa] előugró ablakot (második kép).
  3. Válassza a Remote Java Standard Edition lehetőséget. Kattintson a Tovább gombra. Látni fogja a Java Platform hozzáadása [távoli platform beállítása] előugró ablakot (a harmadik kép az előugró ablakot mutatja, miután megadtam a környezetemnek megfelelő értékeket a mezőkben).
  4. A Platform Name mezőbe írja be a Pi nevét. Szinte bármit használhat, de egyedinek kell lennie.
  5. A Host mezőbe írja be az 1. lépésben talált Pi IP -címét.
  6. A Felhasználónév mezőbe írja be az 1. lépésben használt felhasználónevet.
  7. Hagyja kiválasztva a Jelszóhitelesítés használata lehetőséget, és írja be a Jelszó mezőbe az 1. lépésben létrehozott jelszót.
  8. A Remote JRE Path mezőben meg kell adnia a legtöbb Java -futási idő elérési útját a Pi -n. Az 1. lépésben a/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java volt. A /bin /java mezőt azonban be kell írnia.
  9. A NetBeans letölti a futtatható programot a Pi működő könyvtárába, amely a Working Dir mezőben található. Az alapértelmezett/the_Pi_user_ID/NetBeansProjects/, és ez teljesen elfogadható. Ha kívánja, használhat mást is, bár ennek rendelkezésre kell állnia a_Pi_user_ID számára (harmadik kép).
  10. Kattintson a Befejezés gombra az előugró ablak jobb alsó sarkában. A feldolgozás után ismét látnia kell a Java Platform Manager előugró ablakát. Most látnia kell a távoli Pi -t (a fenti 4. műveletben használt név alatt) a Remote Java SE kategóriában (4. kép).
  11. Kattintson a Test Platform elemre a bal alsó sarokban a NetBeans és a Pi közötti kapcsolat teszteléséhez. Először megjelenik egy felugró ablak, amely a Távoli platform ellenőrzése feliratot jeleníti meg. Ha sikeres, kap egy második előugró ablakot, amely jelzi a Kapcsolat… sikeresen létrejöttét. Ha nem, akkor ellenőriznie és javítania kell a fenti 5–9. Műveletek során a Java platform hozzáadása [távoli platform beállítása] felugró ablakban megadott információkat. Ezt a Java Platform Manager előugró ablakából teheti meg; egyszerűen válassza ki a Pi platformját, majd szerkessze a felugró ablak jobb oldalán található mezőket.
  12. A sikeres csatlakozás után kattintson a Bezárás gombra a Java Platform Manager előugró ablakában. Most látni fogja a NetBeans főablakát.

Most kezdődhet az igazi móka!

4. lépés: Hozzon létre Java projektet a munkaállomáson

Ez nem a NetBeans vagy a Java használatának teljes magyarázata, de leírom azokat a minimális műveleteket, amelyekkel programot írhat a NetBeans -be a munkaállomáson, és végül távolról futtathatja a programot a Raspberry Pi -n.

A NetBeans alkalmazásban először létre kell hoznia egy projektet a program Java osztályának (osztályainak) tárolására. Továbbá a Java nyelven az osztályok csomagokban találhatók, amelyek támogatják a szervezetet és a biztonságot. A projekt létrehozásához, valamint opcionálisan csomag és osztályfájl létrehozásához:

  1. A NetBeans főablakában kattintson az új projekt ikonjára (balról a 2.). Látni fogja az Új projekt [projekt kiválasztása] előugró ablakot (első kép).
  2. Az alapértelmezett értékek (kategória: Java, projekt: Java alkalmazás) megfelelőek erre a példára, ezért egyszerűen kattintson a Tovább gombra. Látni fogja az Új Java alkalmazás [név és hely] felugró ablakot (a második képen az én példám értékei láthatók). MEGJEGYZÉS: Felhasználói adataimat a színes téglalapok segítségével szerkesztettem.
  3. A Projekt neve mezőbe írja be az Ön által választott érvényes Java projektnevet. A névnek nagybetűvel kell kezdődnie, és a konvenció a teve esetét javasolja a szavak összefűzésekor.
  4. A Projekt helye mező határozza meg, hogy a projekt hol található a fájlrendszerben. Az alapértelmezés az operációs rendszertől függően változik, de elfogadható.
  5. A Projekt mappa mező lehetővé teszi a projekt mappa nevének vezérlését. Szerintem a legjobb az alapértelmezettet használni, amely a Hely mező és a Név mező összekapcsolása.
  6. Ha a Főosztály létrehozása jelölőnégyzet be van jelölve, a NetBeans automatikusan létrehoz egy csomagot és egy főosztályfájlt (a parancssorból futtatható programot) a projekt nevével megegyező néven. Azt hiszem, általában nem kell bejelölni, de ebben az esetben hagyom bejelölve, ami kiküszöböli az ehhez szükséges egyéb műveleteket (második kép).
  7. Kattintson a Befejezés gombra a projekt, a csomag és a fő osztályfájl létrehozásához. Most a NetBeans főablakának bal felső ablaktáblája mutatja a projektjét, amely egyetlen csomagot tartalmaz, amely viszont egyetlen osztályfájlt tartalmaz egy main () metódussal. A jobb felső panel a NetBeans által automatikusan generált főosztály (a program) alapértelmezett forráskódját tartalmazza (harmadik kép).

Ezen a ponton írhat néhány kódot a fő módszerbe, és futtathatja a munkaállomáson. Ez időnként kívánatos lehet, de nem szükséges ehhez az utasításhoz, ezért folytassa a következő lépéssel.

5. lépés: Állítsa be a NetBeans projektet a Raspberry Pi távoli futtatására

A NetBeans projekt és a benne található program távoli futtatásához a Raspberry Pi -n konfigurálja a következőket:

  1. Kattintson a jobb vagy két ujjal (a munkaállomás operációs rendszerétől függően) a projektre a NetBeans főablakának Projektjei paneljén, hogy megjelenjen a projektmenü, majd kattintson a Tulajdonságok elemre. Látni fogja a Projekt tulajdonságai előugró ablakot (a képen az előugró ablak látható a példám megfelelő értékeivel).
  2. A bal oldali Kategóriák alatt válassza a Futtatás lehetőséget.
  3. Kattintson a Konfiguráció mező jobb oldalán található Új gombra. A megjelenő Új konfiguráció létrehozása előugró ablakban írja be a konfiguráció nevét, majd kattintson az OK gombra. A név bármi lehet; Most használtam fel újra a platform nevét ("My Pi"). Ismét megjelenik a Projekt tulajdonságai felugró ablak.
  4. Kattintson a Runtime Platform mező jobb oldalán található legördülő menüre. A felugró ablak listájából válassza ki a korábban létrehozott távoli platformot (környezetemben a "My Pi").
  5. Kattintson az OK gombra a távoli platform beállításához a projekthez. Ismét megjelenik a főablak.

Most már készen áll a kód írására és a program távoli futtatására.

6. lépés: Írjon Java programot a munkaállomásra, és futtassa a Raspberry Pi -n

A NetBeans főablakának jobb oldalán látható a NetBeans által generált fő osztályfájl. Írjon be egy egyszerű nyomtatási utasítást az osztályfájl fő módszerébe (első kép). Ez most egy teljes Java program, amely valamit csinál, bár valami nagyon egyszerű.

A program futtatásához a Pi-n kattintson a Futtatás ikonra (a zöld balra mutató nyíl) a főablakban. A NetBeans összeállítja a kódot, felépít egy jar fájlt, letölti a jar fájlt a Raspberry Pi -re, amelyet a távoli platform azonosít, végrehajtja a programot a Pi -n, rögzíti a program kimenetét (System.out), és visszhangozza a kimenetet a NetBeans -nek Kimeneti panel a főablak jobb alsó sarkában (második kép).

Most jelentősen kibővítette készségeit a Raspberry Pi projektjeinek fejlesztésében! De várj…. Több is van!

7. lépés: Hibakeresés a Java programban a NetBeans segítségével

Az olyan ipari erősségű integrált fejlesztési környezet, mint a NetBeans, egyik legerősebb tulajdonsága a program hibakeresésének lehetősége futás közben. A NetBeans lehetővé teszi a hibakeresési eszközök teljes készletének kihasználását távoli futás közben. Ez magában foglalja a töréspontok beállítását a program "fontos" vagy "problémás" helyein, valamint a változók értékének vizsgálatát az aktuális végrehajtási állapotban.

Az utolsó lépésben található egyszerű program túl egyszerű a hibakeresés bemutatásához, ezért hozzáadtam néhány további kódot a programhoz. A kiegészítő kód két változót ad hozzá.

A hibakeresési eszközök kihasználásához először be kell állítani egy vagy több töréspontot. Töréspont beállításához kattintson arra a sorszámra, amelyen fel szeretné függeszteni a végrehajtást; megjelenik egy piros téglalap ikon, és a teljes vonal vörös hátteret kap (első kép).

A Pi -n futó program hibakereséséhez kattintson a Hibakeresés ikonra (közvetlenül a Futtatás ikon jobb oldalán) a NetBeans főablakában. A szokásos végrehajtáshoz hasonlóan a NetBeans fordít, épít, tölt le, hajt végre, rögzíti a kimenetet és visszhangozza ezt a kimenetet. De a hibakereséssel a NetBeans leállítja a végrehajtást a töréspontoknál, és lehetővé teszi a végrehajtási állapot megvizsgálását (második kép, a jobb alsó sarokban látható Változók ablaktábla).

A végrehajtás megáll a törésponton, mielőtt végrehajtja az utasítást a törésponttal rendelkező vonalon. A zöld háttér jelzi a következő végrehajtandó utasítást. Így példámban, a 9. sor töréspontjával az a változó még nem létezik, még kevésbé van értéke.

Most vigye a kurzort a főablakban található hibakeresési menü ikonra (az első dupla nyíllal lefelé mutató ikon a hibakeresési ikon jobb oldalán), majd kattintson a Lépés ikonra (kék dokumentum van a háttérben, és zöld az óramutató járásával ellentétes nyíl) az előtérben). [MEGJEGYZÉS: ha a NetBeans főablakát elég szélesre állítja, a hibakeresési menü kibővül, és a hibakeresési művelet ikonjai a hibakeresési ikon jobb oldalán jelennek meg.] A NetBeans végrehajtja az utasítást a törésponton, és leállítja a végrehajtást a következő utasítás előtt. Most látni fogja, hogy az a változó létezik, és rendelkezik a várt értékkel (harmadik kép).

Kattintson kétszer az Átlépés ikonra. Látni fogja, hogy mindhárom változónak vannak értékei; vegye figyelembe, hogy c még mindig nulla (negyedik kép).

Kattintson egyszer az Átlépés ikonra. Látni fogja, hogy a c változó most rendelkezik a megfelelő értékkel, azaz az a és b változók összegével (ötödik kép).

Végül a hibakeresési menüben kattintson a Futtatás ikonra (zöld kör fehér nyíllal). Ez azt eredményezi, hogy a végrehajtás folytatódik a következő töréspontig, vagy a program végéig, attól függően, hogy melyik következik be előbb. Ekkor megjelenik a Kimenet panel, és ugyanazt a kimenetet mutatja, mint a normál végrehajtásnál, ebben az esetben a print utasítás szövegét.

8. lépés: A program végrehajtása a NetBeans -től függetlenül

Eljöhet az az idő, amikor a Raspberry Pi -n szeretné végrehajtani a programját a NetBeans "segítsége" vagy "beavatkozása" nélkül. Nagyon egyszerű. Először nyisson meg egy ssh klienst a Pi -hez.

Ne feledje, hogy a 3. lépéstől kezdve a NetBeans elhelyezi a projektedényét a Pi munka könyvtárában. Az alapértelmezett alap a/home/pi/NetBeansProjects for pi felhasználó. Az adott könyvtárnak ugyanaz a neve, mint a projektnek. A NetBeans az edényt a dist. Nevű alkönyvtárba helyezi. Példámban a teljes elérési út a/home/pi/NetBeansProjects/MyRemoteProg/dist. A Pi ssh kliensében a program futtatásához használhatja a java parancsot a „jar” opcióval:

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

Látni fogja a végrehajtás eredményét az ssh kliensben; példámban a kimenet lesz

Üdv a Raspberry Pi -től!

Ez azért működik, mert a jar fájlban található információk azonosítják, hogy a jar melyik fő osztályát kell végrehajtani.

Módosíthatja a munkakönyvtárat (cd -n keresztül) a jar fájl helyére, majd kiadhat egy rövidebb parancsot, hogy ugyanazokat az eredményeket érje el.

java -jar MyRemoteProg.jar

9. lépés: Építse és töltse le, de ne futtassa a programot NetBeans -en keresztül

Vannak olyan helyzetek, amikor azt szeretné, hogy a NetBeans építse és töltse le a programját, de ne futtassa azt. Az egyik ilyen helyzet akkor fordul elő, amikor a programhoz billentyűzet -bevitelre van szükség. Ha ez a helyzet, akkor az előző lépésben leírt technikát alkalmazva, a felépítés és a letöltés után a program a Raspberry Pi -n fut, és így a Pi billentyűzetét is várja, de természetesen a Pi -hez nincs billentyűzet csatlakoztatva, így a program lefagy - nem jó.

A program végrehajtásához némileg más technikát kell használnia. Alapvetően létrehoz egy "dummy" főosztályú fájlt, amely lényegében semmit sem tesz, és azonosítja a letöltés után végrehajtandó programként. Ebben az esetben a "dummy" végrehajtásra kerül, és az "igazi" programot közvetlenül a Pi -n futtathatja.

Ennek a technikának a használatához először hozzon létre egy új főosztályt:

  1. Nyissa meg a projekt menüt, mint az 5. lépésben, és kattintson az Új-> Java főosztály elemre. Ekkor megjelenik az Új Java főosztály felugró ablak.
  2. Az Osztálynév mezőbe írjon be egy nevet. A név bármi lehet, ami tetszik; Én a "Dummy" -t használtam. A Csomag mező lehetővé teszi az osztály csomagjának azonosítását; a csomagot a mező jobb oldalán található legördülő menü segítségével választhatja ki. Az osztály ugyanabban a csomagban lehet, mint az "igazi" program, vagy egy másik csomagban; Az új osztályt ugyanabba a csomagba tettem. Kattintson a Befejezés gombra. Most látni fogja a NetBeans főablakát az új fájllal a jobb felső panelen (első kép). Hozzáadtam egy egyszerű nyomtatott nyilatkozatot a Pi -n való futásról, de semmi sem szükséges.

A letöltés után a "Dummy" futtatásához a projekt "alapértelmezetten végrehajtandó osztályává" kell tennie:

  1. Nyissa meg a Projekt tulajdonságait az 5. lépésben leírtak szerint. Válassza a Futtatás kategóriát. Kattintson a Tallózás gombra a Főosztály mezőtől jobbra. Ekkor megjelenik a Tallózás a fő osztályok felugró ablak (második kép).
  2. Válassza ki a "Dummy" osztályt. Kattintson a Főosztály kiválasztása lehetőségre. Ismét látni fogja a projekt tulajdonságait.
  3. Kattintson az OK gombra. Visszatér a főablakhoz.

Most, amikor a Futtatás ikonra kattint, a NetBeans megfelel/építi a teljes projektet, letölti az összes osztályfájlt tartalmazó edényt a Pi -re, és végrehajtja a "Dummy" osztályt (harmadik kép).

Az igazi program futtatásához a Pi -n most a java parancsot kell használnia az "classpath" opcióval, amely megköveteli, hogy kifejezetten azonosítsa a végrehajtandó főosztályt. Az ssh kliensből lépjen a projekt dist könyvtárába. A megfelelő parancs a következő formátumú:

java -cp projekt_neve.jar csomag_neve.osztálynév

A project_name nyilvánvalóan a projektre utal; ez csak akkor változik, ha új projektről van szó. A csomag_neve természetesen a csomagra vonatkozik, az osztálynév pedig a végrehajtandó fő osztályra. Mint korábban említettük, egy projekt sok csomagot tartalmazhat. Hasonlóképpen, egy csomag sok osztályt tartalmazhat, és mindegyik lehet főosztály vagy program, amelyet parancssorból lehet végrehajtani. Így az „osztályút” technika nagyon hasznos bonyolult programok kifejlesztéséhez, sok osztályból, amelyek közül néhány csak főosztály, hogy segítse az egység tesztelését.

A következő parancs futtatja a példaprogramomat:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

10. lépés: A NetBeans könyvtárkezelésének kihasználása

A kifinomult programok egyik legkeményebb, de legfontosabb aspektusa a könyvtárakkal való foglalkozás, azaz más által már leírt kódolás. A NetBeans csodálatra méltó munkát végez a könyvtárkezelés fájdalmainak nagy részének eltávolításában.

Példaként a Pi4J -t használom, amely hozzáférést biztosít a Java programokhoz a Raspberry Pi GPIO -hoz, az I2C buszhoz és más hardver I/O -hoz. A Pi4J csak egy példa arra, hogy sok szórakoztató dolgot lehet csinálni a Pi -n Java -val.

Először le kell töltenie a könyvtárat a munkaállomásra. Lásd a Pi4J letöltési oldalt. Mivel nem telepíti a Pi4J -t a Pi -re, töltse le a zip fájlt a munkaállomásra. Lehet, hogy a zip letöltése után kifejezetten ki kell csomagolnia.

Most létre kell hoznia egy "globális könyvtárat" a NetBeans -ben:

  1. A NetBeans főmenüjében kattintson az Eszközök -> Könyvtárak elemre. Látni fogja az Ant Library Manager előugró ablakát (első kép).
  2. Kattintson az Új könyvtár elemre a bal alsó sarokban. Ekkor megjelenik az Új könyvtár felugró ablak (második kép).
  3. Írja be a használni kívánt értelmes nevet, majd kattintson az OK gombra. Ismét megjelenik az Ant Library Manager felugró ablak. Most a létrehozott új könyvtárat mutatja (harmadik kép).
  4. Kattintson a JAR/mappa hozzáadása lehetőségre a jobb oldalon. Megjelenik a Tallózás JAR/mappa felugró ablak (4. kép).
  5. Keresse meg, majd válassza a pi4j-core.jar lehetőséget. Ezután kattintson a JAR/mappa hozzáadása gombra. Visszatér a Hangya Könyvtárkezelő előugró ablakba.
  6. Az Ant Library Manager előugró ablakában kattintson az OK gombra. Visszatér a NetBeans főablakába.

Hozzáadta a könyvtárat, hogy bármely projektben használható legyen. Most hozzá kell adnia a könyvtárat a projekthez:

  1. Nyissa meg a Projekt tulajdonságai előugró ablakot (lásd az 5. lépést), és válassza ki a Könyvtárak kategóriát (ötödik kép).
  2. Kattintson a Könyvtár hozzáadása lehetőségre a felugró ablak jobb oldalán. Megjelenik a Könyvtár hozzáadása felugró ablak (hatodik kép).
  3. Keresse meg a könyvtárat, és válassza ki. Ezután kattintson a Könyvtár hozzáadása gombra. Ismét megjelenik a Projekt tulajdonságai felugró ablak. A könyvtár most megjelenik a felugró ablakban a fordítási idejű könyvtárak listájában.
  4. A Projekt tulajdonságai felugró ablakban kattintson az OK gombra. Visszatér a főablakhoz.

Hozzáadta a könyvtárat a projekthez, hogy a programja használhassa. Ugyanezt a műveletsort végezheti el bármely programhoz szükséges könyvtárhoz.

Három alkalommal van szükség a könyvtárra - fordítás, összeállítás és végrehajtás. Szerencsére a NetBeans esetében a könyvtár hozzáadása a fentiek szerint mindent megold. Ennek megerősítésére létrehoztam egy másik főosztályt, amely teljesíti a szükséges minimumot az I2C képesség Pi4J használatához (hetedik kép). Az a tény, hogy nincsenek hibák, azt jelenti, hogy a TestPi4J osztály fordít. Kattintson a Futtatás sikeres építése és letöltése gombra; A NetBeans a jar fájl mellett letölti a könyvtárat, így a program végrehajtásra kerül. Utóbbi ellenőrzéséhez használhatja a 9. lépésben leírt technikát, és az ssh kliensben írja be a következő parancsot (a dist könyvtárból):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

Tanulságos megérteni, hogyan kezeli a NetBeans a könyvtárakat. A projekt dist könyvtárában listázza a könyvtár tartalmát (használja az ls parancsot), és megjelenik egy lib alkönyvtár. Sorolja fel a könyvtár tartalmát, és látni fogja a jar fájlt a globális könyvtárban, amely az én példámban pi4j-core.jar. A projekthez hozzáadott összes könyvtár megjelenik a lib könyvtárban, és így a projekt jar fájlban lévő összes program számára elérhető.

11. lépés: Menj szórakozni

Leírtam egy megközelítést a nagyon hatékony Java fejlesztés eléréséhez a Raspberry Pi számára. A Raspberry Pi egy rendkívül népszerű technológia a projektek széles spektrumához. A Java egy professzionális szintű programozási nyelv, amely teljesítményelőnyöket kínál a Pythonhoz képest, és biztonsági előnyöket kínál a C/C ++ -hoz képest. A NetBeans egy professzionális szintű IDE, amely nagymértékben növeli a programozók termelékenységét.

Szerintem a kombináció nagyon meggyőző. Most pedig szórakozzon a kombinációval a projektjeihez.

Ajánlott: