Indholdsfortegnelse:

Effektiv Java -udvikling til Raspberry Pi: 11 trin (med billeder)
Effektiv Java -udvikling til Raspberry Pi: 11 trin (med billeder)

Video: Effektiv Java -udvikling til Raspberry Pi: 11 trin (med billeder)

Video: Effektiv Java -udvikling til Raspberry Pi: 11 trin (med billeder)
Video: HELE NATTEN MED POLTERGEIST I LEJLIGHEDSBYGNINGEN filmede jeg den uhyggelige aktivitet. 2024, Juli
Anonim

Denne instruktør beskriver en meget effektiv tilgang til udvikling af Java -programmer til Raspberry Pi. Jeg har brugt metoden til at udvikle Java-muligheder, lige fra lavt niveau enhedsunderstøttelse til multi-threaded og netværksbaserede programmer. Fremgangsmåden er ikke kun effektiv, den er gratis!

Grundlæggende er tilgangen fjernudvikling ved hjælp af NetBeans. NetBeans kører på en arbejdsstation (en stationær eller bærbar computer, ikke Raspberry Pi) forbundet via Wifi til Raspberry Pi. Når alt er konfigureret korrekt, kan du skrive et Java -program i NetBeans og derefter et enkelt klik kompilerer og bygger programmet på arbejdsstationen, downloader programmet til Pi, kører programmet på Pi og leverer output til NetBeans -konsollen. Magi! Du kan endda fejlsøge det kørende program, indstille breakpoints og undersøge variable værdier. Mere magi!

Resten af denne introduktion beskriver motivationen til at bruge Java og til fjernudvikling ved hjælp af NetBeans. Hvis du er interesseret i motivation, læs videre. Hvis du er ligeglad, skal du gå til trin 1.

Hvorfor bruge Java på Raspberry Pi?

Der er mange programmeringssprog til rådighed for Raspberry Pi, men jeg vil begrænse diskussionen til programmeringssprog af "professional grade", der er målrettet mod selvstændige programmer, understøtter multi-tasking, tillader hardware og netværksadgang osv. Det betyder Java, Python eller C/C ++. De seneste udgivelser af Raspbian inkluderer udvikling og runtime support til alle disse sprog.

Python er i virkeligheden "promoveret" til brug på Pi, i det mindste delvist for at være let at lære for nye programmører. Jeg er en erfaren programmerer og er ikke glad for Python på grund af en ganske vist subjektiv modvilje med en række af dens egenskaber, for eksempel dynamisk skrivning. Der er et kendetegn ved Python, som min modvilje er objektiv - ydeevne. Denne kilde viser, at Java altid er hurtigere end Python 3, og faktisk kan køre hundredvis af gange hurtigere, afhængigt af opgaven.

C efter min mening er et "maskinsprog på højt niveau", dvs. noget, der er meget tæt på systemhardwaren eller i det mindste operativsystemet. Du kan stort set alt, og du kan gøre det cirka så hurtigt som muligt; faktisk tyder denne kilde på, at C kan køre op til 7X så hurtigt som Java. Jeg er heller ikke glad for C, da jeg (subjektivt) ikke kan lide nogle af dens egenskaber, som jeg synes er uhyggelige, arkaiske eller begge dele; for eksempel eksplicitte tip. Objektivt set betyder det faktum, at du kan gøre alt, at du kun er en uklar fejl (f.eks. Dårlig pegearitmetik eller en fejlagtig memcpy) væk fra at overskrive hukommelse og potentielt går ned på programmet eller endda hele systemet. Java forhindrer sådanne farer, så Java er sikrere. Jeg føler, at sikkerheden også forbedrer programmørens produktivitet. Jeg betragter C ++ som en objektorienteret "indpakning" omkring C, der ikke gør noget for at fjerne farerne ved C.

Bundlinjen: Java er hurtigere end Python. Java er sikrere end C.

Er der begrænsninger ved brug af Java?

Indtil videre har jeg været i stand til at gøre alt i Java, som jeg kan gøre i Python. Der er ting, man kan gøre i C, som man ikke kan gøre i Java, men igen, indtil nu er alt, hvad jeg ville gøre, blevet behandlet af Java -fans i Pi -samfundet. Jeg giver et eksempel i et senere trin. Når det er sagt, har jeg købt sensorer fra leverandører, der kun leverede "drivere" til sensorerne i Python (eller C/C ++ for Arduino), så jeg var nødt til at skrive Java -ækvivalenten; den ekstra indsats er ikke nødvendigvis produktiv, men kan resultere i større indsigt i en sensors funktion.

Hvorfor fjernudvikling baseret på NetBeans?

Jeg har fundet ud af, at NetBeans-baseret fjernudvikling i høj grad øger produktiviteten, når du bruger Java til Raspberry Pi. Jeg er overbevist om, at du kan bruge metoden til at oprette hurtige og sikre programmer på grund af de iboende egenskaber ved Java, mens du skriver, bygger og debugger dem meget hurtigere end andre tilgange, jeg har fundet, på grund af fjernudvikling ved hjælp af "professionelle klasse "NetBeans Integrated Development Environment (IDE).

Det kan være nyttigt at kort diskutere disse "andre tilgange". Alle opfylder de grundlæggende kriterier for, at Raspberry Pi ikke har tilsluttet et tastatur, en mus eller en skærm. Der er mange grunde til disse kriterier, men min primære årsag er, at jeg udvikler mobile robotter, og jeg vil ikke have, at Pi'en er tilsluttet eksterne enheder undtagen robotiske undersystemer, selv under udvikling.

VNC -serveren, der er inkluderet i Raspbian, giver en fjerngrafisk brugergrænseflade (GUI), der tillader en form for fjernudvikling, hvor kun den eksterne GUI kører på arbejdsstationen og alt andet, skrivning, kompilering og opbygning, finder sted på Pi. Med VNC er det let at bruge de Java-kompatible udviklingsværktøjer, der leveres i Raspbian, som BlueJ, Geany og Greenfoot. Nogle af disse kan betragtes som en IDE; jeg finder dem dog langt fra professionel karakter.

Det er teknisk muligt at installere en Java IDE af professionel kvalitet som Eclipse eller NetBeans på Raspberry Pi og bruge den eksternt via VNC. Rapporter og sund fornuft antyder, at resultaterne ville være skuffende på grund af det store hukommelsesaftryk og CPU -effekt, som sådanne IDE'er kræver, samt netværksforsinkelse, der blev introduceret af en fjern -GUI.

Både Eclipse og NetBeans kører meget godt på en arbejdsstation. Med Eclipse er skrivning af kode en behagelig oplevelse, men at bygge programmet er ikke; download af programmet skal foregå uden for Eclipse; udførelse af programmet på Pi er fuldstændig uafhængig af Eclipse. Det samlede resultat er en proces med flere trin, næsten smertefuld, der ikke kan understøtte fjernfejlfinding. NetBeans har indbygget kompilering, build, download, fjernudførelse og fjernfejlfinding, hvilket gør det til en overlegen tilgang.

Trin 1: Konfigurer Raspberry Pi

For at bruge fjernudviklingsmetoden skal du starte med at oprette målet Raspberry Pi. Der er mange ressourcer, herunder Instructables, til rådighed for at hjælpe med at oprette en Raspberry Pi. Se dette for det grundlæggende ved opsætning af Pi (og mere).

Denne instruktive antager dig

  • installere den nyeste Raspbian; Sørg for at registrere Pi -bruger -id og adgangskode
  • konfigurer Wifi og opret forbindelse til din router (se dette); Sørg for at registrere Pi's IP -adresse
  • aktiver SSH (se dette) for at tillade fjernadgang til Pi’en fra arbejdsstationen

Når du har gennemført opsætningen, kan du slukke og afbryde skærmen, tastaturet og musen fra Pi. Dette er en af de vigtigste fordele ved fjernudvikling. Du skal lade enhver Wifi -dongle være tilsluttet (naturligvis ikke nødvendig for en Pi -model 3 eller Pi Zero W), og derefter kan du tænde for Pi.

For at teste skal du åbne en ssh -klient på din arbejdsstation, f.eks. Terminal på MacOS eller kit på Windows. Indtast derefter kommandoen ssh (secure shell) med følgende formular:

ssh the_pi_ip_address -l the_pi_user_id

Du bør få en prompt om at indtaste dit Pi -bruger -id's adgangskode. Hvis der ikke vises nogen prompt, skal du kontrollere, om du har indtastet den rigtige IP -adresse i ssh -kommandoen. Indtast din adgangskode (den vil være skjult), og du skal derefter se Pi's shell -prompt, der ser sådan ud:

pi@raspberrypi: ~ $

Hvis du ikke kan se prompten, skal du kontrollere det bruger -id og den adgangskode, du brugte.

Nu skal du finde stien til Java -runtime og bekræfte, at standardversionen er Java 8 (burde være sand for den nyeste Raspbian). For at finde Java -runtime -stien skal du indtaste kommandoen i ssh -klienten

sudo update-alternativer-vis java

Du bør se et svar med de første to linjer, der ligner følgende:

java - automatisk tilstand

link bedste version er/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java

"-8-" i den anden linje bekræfter, at standard runtime er Java 8. Registrer stien i den anden linje, da du skal bruge den til at konfigurere NetBeans til fjernudvikling i et senere trin.

Hvis standardkørselstiden ikke er Java 8, skal du i ssh -klienten indtaste følgende kommando for at skifte til Java 8 (forudsat at den er installeret)

sudo update-alternativer --config java

Trin 2: Installer NetBeans på arbejdsstationen

Nu skal du installere NetBeans på din arbejdsstation. Ret din arbejdsstationsbrowser til NetBeans download -side. Du vil se flere mulige bundter, der understøtter de to udgaver af Java såvel som andre sprog. Alt du har brug for til Java -udvikling til Raspberry Pi er Java SE, men du kan få Java EE -pakken eller Alle -pakken. Når du har besluttet, hvilket bundt du vil have, skal du klikke på den tilsvarende download -knap. Du kan finde yderligere installationsvejledninger til dit arbejdsstations -OS her.

Når du har installeret NetBeans, skal du starte det (det kan gøre det automatisk efter installationen). Du bør se NetBeans hovedvindue som vist på billedet. Billedet er taget på en Mac, og hovedvinduet kan se lidt anderledes ud på Windows.

Når du har installeret og startet NetBeans med succes, skal du fortsætte til næste trin.

Trin 3: Konfigurer Raspberry Pi som en fjernplatform i NetBeans

Konfigurer Raspberry Pi som en fjernplatform i NetBeans
Konfigurer Raspberry Pi som en fjernplatform i NetBeans

Følgende handlinger konfigurerer Raspberry Pi som en fjern Java SE -platform til NetBeans. Dette gør det muligt for NetBeans at downloade og eksekvere Java -programmer på Pi. Du kan finde en lidt generisk beskrivelse her.

BEMÆRK: I dette og følgende trin viser jeg værdier, der er specifikke for mit miljø for forskellige aspekter af konfiguration og kodning; din vil tydeligvis være anderledes.

Sådan konfigureres Pi som en fjernplatform:

  1. I NetBeans hovedmenulinje skal du vælge Værktøjer -> Java -platforme. Du vil se Java Platform Manager popup -vinduet (billede et).
  2. Klik på Tilføj platform nederst til venstre. Du vil se Tilføj Java Platform [platformtype] popup (billede to).
  3. Vælg Remote Java Standard Edition. Klik på Næste. Du vil se Tilføj Java -platform [opsæt fjernplatform] popup (billede tre viser popup -vinduet, efter at jeg har indtastet de korrekte værdier for mit miljø i felterne).
  4. I feltet Platformnavn skal du indtaste et navn til Pi. Du kan bruge stort set alt, men det skal være unikt.
  5. I feltet Host skal du indtaste IP -adressen for Pi fundet i trin 1.
  6. I feltet Brugernavn indtaster du det brugernavn, du brugte i trin 1.
  7. Lad Brug godkendelse af adgangskode valgt, og indtast den adgangskode, du oprettede i trin 1, i feltet Adgangskode.
  8. I feltet Fjern JRE -sti skal du indtaste det meste af stien til Java -runtime på Pi. I trin 1 var det/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java. Du skal dog aflevere /bin /java i feltværdien.
  9. NetBeans downloader det løbbare program til et arbejdskatalog på Pi'en, der er identificeret i feltet Working Dir. Standarden er/the_Pi_user_ID/NetBeansProjects/og det er helt acceptabelt. Du kan bruge noget andet, hvis du ønsker det, selvom det skal være tilgængeligt for_Pi_user_ID (billede tre).
  10. Klik på Afslut nederst til højre i pop op -vinduet. Efter behandling skal du igen se popup -vinduet Java Platform Manager. Nu skal du se din eksterne Pi (under det navn, du brugte i handling 4 ovenfor) under kategorien Remote Java SE (billede fire).
  11. Klik på Test platform nederst til venstre for at teste forbindelsen mellem NetBeans og din Pi. Du vil først se en popup, der siger Verificering af fjernplatform. Hvis det lykkes, får du en anden popup, der angiver, at forbindelsen … er etableret. Hvis ikke, skal du kontrollere og rette de oplysninger, du har angivet i pop-up'en Tilføj Java-platform [opsæt fjernplatform] i handlinger 5-9 ovenfor. Du kan gøre det fra pop -up'en Java Platform Manager; vælg blot din Pi -platform og rediger derefter felterne i højre side af popup'en.
  12. Efter en vellykket forbindelse skal du klikke på Luk i pop op -vinduet Java Platform Manager. Du vil nu se NetBeans hovedvindue.

Nu kan den rigtige sjov starte!

Trin 4: Opret et Java -projekt på arbejdsstationen

Dette er ikke beregnet til at være en fuldstændig forklaring på, hvordan man bruger NetBeans eller Java, men jeg vil beskrive de minimale handlinger for at skrive et program i NetBeans på arbejdsstationen og til sidst køre programmet eksternt på Raspberry Pi.

I NetBeans skal du først oprette et projekt for at holde Java -klassen (e) til programmet. Yderligere findes klasser i Java i pakker til støtte for organisation og sikkerhed. For at oprette projektet og eventuelt oprette en pakke og en klassefil:

  1. Klik på det nye projektikon (2. fra venstre) i hovedvinduet i NetBeans. Du vil se popup -vinduet Nyt projekt [vælg projekt] (billede et).
  2. Standardindstillingerne (Kategori: Java, Projekt: Java -applikation) er korrekte for dette eksempel, så klik blot på Næste. Du vil se pop op -vinduet Nyt Java -program [navn og placering] (billede to viser værdier for mit eksempel). BEMÆRK: Jeg har redigeret mine brugeroplysninger ved hjælp af de farvede rektangler.
  3. I feltet Projektnavn skal du indtaste et gyldigt Java -projektnavn efter eget valg. Navnet skal starte med et stort bogstav, og konventionen foreslår kamelhylster ved sammenkædning af ord.
  4. Feltet Projektplacering styrer, hvor projektet ligger i dit filsystem. Standarden varierer afhængigt af operativsystemet, men det er sikkert at acceptere.
  5. Feltet Projektmappe giver dig mulighed for at styre mappenavnet for projektet. Jeg finder det bedst at bruge standard, som er en sammenkædning af feltet Placering og feltet Navn.
  6. Når afkrydsningsfeltet Opret hovedklasse er markeret, opretter NetBeans automatisk en pakke og en hovedklassefil (et program, der kan køres fra kommandolinjen) med samme navn som projektet. Jeg tror, at det normalt bør være ukontrolleret, men i dette tilfælde vil jeg lade det være markeret, hvilket eliminerer eksplicitte handlinger, der ellers er nødvendige for at gøre det (billede to).
  7. Klik på Afslut for at oprette projektet, en pakke og en hovedklassefil. Nu viser den øverste venstre rude i NetBeans -hovedvinduet dit projekt, som indeholder en enkelt pakke, som igen indeholder en enkelt klassefil med en main () -metode. Den øverste højre rude indeholder standardkildekoden for hovedklassen (programmet), der automatisk genereres af NetBeans (billede tre).

På dette tidspunkt kunne du skrive en kode i hovedmetoden og køre den på arbejdsstationen. Det kan til tider være ønskeligt, men er ikke nødvendigt for denne instruks, så gå videre til næste trin.

Trin 5: Konfigurer NetBeans -projektet til at køre eksternt på Raspberry Pi

Gør følgende for at konfigurere NetBeans -projektet og et program, det indeholder, til at køre eksternt på Raspberry Pi:

  1. Højreklik eller 2-finger-klik (afhænger af arbejdsstationens operativsystem) på projektet i ruden Projekter i NetBeans hovedvindue for at åbne projektmenuen og klikke på Egenskaber. Du ser popup -vinduet Projektegenskaber (billedet viser popup'en med de korrekte værdier for mit eksempel).
  2. Vælg Kør under Kategorier til venstre.
  3. Klik på Ny til højre for feltet Konfiguration. I den resulterende pop -up Opret ny konfiguration skal du indtaste et navn til konfigurationen og klikke på OK. Navnet kan være alt; Jeg har lige genbrugt platformens navn ("My Pi"). Igen ser du popup -vinduet Projektegenskaber.
  4. Klik på rullemenuen til højre for Runtime Platform -feltet. Vælg den fjernplatform, du har oprettet tidligere på listen i popup -vinduet (i mit miljø, "My Pi").
  5. Klik på OK for at konfigurere den eksterne platform til projektet. Du vil igen se hovedvinduet.

Du er nu klar til at skrive kode og køre programmet eksternt.

Trin 6: Skriv et Java -program på arbejdsstationen, og kør det på Raspberry Pi

Det højre panel i NetBeans hovedvindue viser hovedklassefilen, der er genereret af NetBeans. Skriv en simpel udskrivningserklæring i hovedmetoden i klassefilen (billede et). Det er nu et komplet Java -program, der gør noget, omend noget meget simpelt.

For at køre programmet på Pi skal du klikke på ikonet Kør (den grønne pil til venstre) i hovedvinduet. NetBeans kompilerer koden, bygger en jar -fil, downloader jar -filen til Raspberry Pi, der er identificeret af fjernplatformen, udfører programmet på Pi, fanger programmets output (System.out) og ekko den output til NetBeans Outputrude nederst til højre i hovedvinduet (billede to).

Du har nu betydeligt udvidet dit færdighedssæt til udvikling af projekter på Raspberry Pi! Men vent…. Der er mere!

Trin 7: Debug Java -programmet med NetBeans

En af de mest kraftfulde egenskaber ved et industrielt styrket integreret udviklingsmiljø som NetBeans er evnen til at fejlsøge programmet, mens det kører. NetBeans giver dig mulighed for at udnytte hele pakken med fejlfindingsværktøjer, mens du kører eksternt. Dette omfatter indstilling af brydepunkter på "vigtige" eller "besværlige" steder i programmet og undersøgelse af værdien af variabler ved den aktuelle udførelsestilstand.

Det enkle program i det sidste trin er for simpelt til at demonstrere fejlfinding, så jeg tilføjede en ekstra kode til programmet. Den ekstra kode tilføjer to variabler.

For at udnytte fejlfindingsværktøjerne skal du først angive et eller flere breakpoints. For at angive et breakpoint skal du klikke på det linjenummer, hvor du ønsker at suspendere udførelsen; vises et rødt rektangelikon, og hele linjen får en rød baggrund (billede et).

For at fejlsøge det program, der kører på Pi, skal du klikke på ikonet Debug (umiddelbart til højre for ikonet Kør) i NetBeans hovedvindue. Som med normal udførelse, NetBeans kompilerer, bygger, downloader, eksekverer, indfanger output og gentager dette output. Men med fejlfinding stopper NetBeans udførelsen ved brudpunkter og giver dig mulighed for at undersøge udførelsestilstanden (billede to, der viser ruden Variabler nederst til højre).

Udførelsen stopper ved breakpointet, før instruktionen udføres på linjen med breakpointet. Den grønne baggrund angiver den næste sætning, der skal udføres. Således i mit eksempel, med et brydepunkt ved linje 9, eksisterer variabel a endnu ikke, langt mindre har en værdi.

Hold nu markøren over ikonet til fejlretning i hovedvinduet (det første ikon med dobbelt pil ned til højre for fejlfindingsikonet), og klik på ikonet Trin over (det har et blåt dokument i baggrunden og en grøn pil mod uret) i forgrunden). [BEMÆRK: hvis du gør dit NetBeans -hovedvindue bredt nok, udvides fejlfindingsmenuen, og ikonerne for fejlfindingshandlinger vises til højre for fejlfindingsikonet.] NetBeans udfører erklæringen ved brudpunktet og stopper udførelsen inden den næste erklæring. Du vil nu se, at variablen a eksisterer og har den forventede værdi (billede tre).

Klik på ikonet Step Over to gange. Du vil se, at alle tre variabler har værdier; Bemærk, at c stadig er nul (billede fire).

Klik på Step Over -ikonet én gang. Du vil se, at variabel c nu har den korrekte værdi, dvs. summen af variablerne a og b (billede fem).

Til sidst skal du klikke i menuen Fejlfinding på ikonet Kør (en grøn cirkel med en hvid pil). Det får eksekveringen til at fortsætte til det næste breakpoint eller til slutningen af programmet, alt efter hvad der kommer først. Nu vises Output -ruden og viser det samme output som ved normal udførelse, i dette tilfælde teksten i udskriftssætningen.

Trin 8: Udfør programmet uafhængigt af NetBeans

Den tid kan komme, når du vil køre dit program på Raspberry Pi, uden "assistance" eller "interferens" fra NetBeans. Det er meget enkelt. Åbn først en ssh -klient til din Pi.

Husk fra trin 3, at NetBeans placerer dit projektglas i et arbejdskatalog på Pi. Standardbasen er/home/pi/NetBeansProjects for user pi. Det specifikke bibliotek har samme navn som dit projekt. NetBeans placerer krukken i en undermappe kaldet dist. For mit eksempel er den fulde sti/home/pi/NetBeansProjects/MyRemoteProg/dist. I ssh -klienten på Pi kan du bruge java -kommandoen til at udføre programmet med 'jar' -indstillingen:

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

Du vil se resultaterne af udførelsen i ssh -klienten; i mit eksempel vil output være

Hej fra Raspberry Pi!

Dette fungerer, fordi oplysninger i jar -filen identificerer, hvilken hovedklasse i krukken der skal udføres.

Du kan også ændre arbejdsmappen (via cd) til placeringen af jar -filen og derefter udstede en kortere kommando for at producere de samme resultater.

java -jar MyRemoteProg.jar

Trin 9: Byg og download, men udfør ikke programmet via NetBeans

Der er situationer, hvor du vil have NetBeans til at bygge og downloade dit program, men ikke udføre det. En sådan situation opstår, når dit program har brug for tastaturindgang. Hvis dette er tilfældet, ved hjælp af teknikken i det foregående trin, når du først har bygget og downloadet, kører programmet på Raspberry Pi og forventer derfor tastaturindgang fra Pi, men der er selvfølgelig ikke noget tastatur knyttet til Pi, så programmet hænger - ikke godt.

Du skal bruge en noget anden teknik til at udføre programmet. Grundlæggende opretter du en "dummy" hovedklassefil, der i det væsentlige ikke gør noget, og identificerer den som det program, der skal udføres efter download. I dette tilfælde bliver "dummy" eksekveret, og du kan derefter køre dit "rigtige" program direkte på Pi.

For at bruge denne teknik skal du først oprette en ny hovedklasse:

  1. Åbn projektmenuen som i trin 5, og klik på Ny-> Java Main Class. Du vil se pop -up'en Ny Java Main Class.
  2. Indtast et navn i feltet Klassenavn. Navnet kan være alt, hvad du kan lide; Jeg brugte "Dummy". Med feltet Pakke kan du identificere klassens pakke; du vælger pakke ved hjælp af rullemenuen til højre for feltet. Klassen kan være i samme pakke som dit "rigtige" program eller i en anden pakke; Jeg lagde den nye klasse i samme pakke. Klik på Udfør. Du vil nu se NetBeans hovedvindue med den nye fil i øverste højre panel (billede et). Jeg tilføjede en simpel udskrivningserklæring om at køre på Pi, men intet er virkelig nødvendigt.

For at køre "Dummy" efter download skal du gøre det til "hovedklassen, der skal udføres som standard" for projektet:

  1. Åbn projektegenskaberne som i trin 5. Vælg kategorien Kør. Klik på Gennemse til højre for feltet Hovedklasse. Du vil se Gennemse hovedklasser pop op (billede to).
  2. Vælg klassen "Dummy". Klik på Vælg hovedklasse. Du vil igen se Projektegenskaberne.
  3. Klik på OK. Du vender tilbage til hovedvinduet.

Når du nu klikker på ikonet Kør, overholder/bygger NetBeans hele projektet, downloader krukken med alle klassefilerne til Pi og udfører klassen "Dummy" (billede tre).

For at udføre dit rigtige program på Pi skal du nu bruge java -kommandoen med indstillingen 'classpath', hvilket kræver, at du eksplicit identificerer hovedklassen, der skal udføres. Fra en ssh -klient skal du gå til dist -biblioteket for dit projekt. Den korrekte kommando er af formen:

java -cp projektnavn.jar pakkenavn.klassenavn

Projektnavnet refererer naturligvis til projektet; det ændrer sig kun, når man beskæftiger sig med et nyt projekt. Pakkenavn henviser naturligvis til pakken, og klassenavnet henviser til hovedklassen, der skal udføres. Som sagt tidligere kan et projekt indeholde mange pakker. På samme måde kan en pakke indeholde mange klasser, og alle kan være hovedklasser eller programmer, der kan udføres fra kommandolinjen. Således er 'classpath' -teknikken ganske nyttig til at udvikle sofistikerede programmer med mange klasser, hvoraf nogle kun er hovedklasser til at hjælpe enhedstest.

Følgende kommando udfører mit eksempelprogram:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

Trin 10: Udnyt NetBeans Library Management

Et af de hårdeste, men vigtigste aspekter ved sofistikerede programmer er håndtering af biblioteker, dvs. kode, som en anden allerede har skrevet. NetBeans gør et beundringsværdigt stykke arbejde med at fjerne det meste af smerten ved biblioteksstyring.

Jeg vil bruge som et eksempel Pi4J, som giver Java -programmer adgang til Raspberry Pi GPIO, I2C -bus og anden hardware I/O. Pi4J er kun et eksempel på støtte til at lave masser af sjove ting på Pi med Java.

Du skal først downloade biblioteket til din arbejdsstation. Se Pi4J download side. Da du ikke installerer Pi4J på Pi, skal du downloade zip'en til din arbejdsstation. Du skal muligvis ikke eksplicit pakke ud, når zip -filen er downloadet.

Nu skal du oprette et "globalt bibliotek" i NetBeans:

  1. Klik på Værktøjer -> biblioteker i hovedmenuen i NetBeans. Du vil se Ant Library Manager popup (billede et).
  2. Klik på Nyt bibliotek nederst til venstre. Du vil se popup -vinduet Nyt bibliotek (billede to).
  3. Indtast et meningsfuldt navn, du vil bruge, og klik på OK. Du vil igen se Ant Library Manager popup. Det viser nu det nye bibliotek, du har oprettet (billede tre).
  4. Klik på Tilføj JAR/mappe til højre. Du vil se Gennemse JAR/mappe popup (billede fire).
  5. Naviger til, og vælg derefter pi4j-core.jar. Klik derefter på Tilføj JAR/mappe. Du vender tilbage til Ant Library Manager popup.
  6. Klik på OK i pop op -vinduet Ant Library Manager. Du vender tilbage til NetBeans hovedvindue.

Du har tilføjet biblioteket, så det kan bruges i ethvert projekt. Nu skal du tilføje biblioteket til dit projekt:

  1. Åbn popup -vinduet Projektegenskaber (se trin 5), og vælg kategorien Biblioteker (billede fem).
  2. Klik på Tilføj bibliotek i højre side af popup -vinduet. Du vil se Tilføj bibliotek popup (billede seks).
  3. Naviger til biblioteket, og vælg det. Klik derefter på Tilføj bibliotek. Du vil igen se popup -vinduet Projektegenskaber. Biblioteket vises nu på listen over kompileringstidsbiblioteker i pop op-vinduet.
  4. Klik på OK i popup -vinduet Projektegenskaber. Du vender tilbage til hovedvinduet.

Du har føjet biblioteket til dit projekt, så dit program kan bruge det. Du kan udføre den samme rækkefølge af handlinger for alle de biblioteker, du har brug for til et program.

Der er tre gange, du har brug for biblioteket - kompilere, bygge og udføre. Heldigvis håndterer alle med NetBeans tilføjelse af biblioteket som vist ovenfor. For at bekræfte dette har jeg oprettet en anden hovedklasse, der gør det absolutte minimum, der er nødvendigt for at bruge I2C -funktionen i Pi4J (billede syv). Det faktum, at der ikke viser fejl, betyder, at klassen TestPi4J kompilerer. Hvis du klikker på Kør, opbygges og downloades vellykket; NetBeans downloader biblioteket ud over jar -filen, så programmet udføres. For at kontrollere sidstnævnte kan du bruge teknikken i trin 9 og i ssh -klienten indtaste følgende kommando (fra dist -biblioteket):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

Det er lærerigt at forstå, hvordan NetBeans håndterer biblioteker. Mens du er i dist -biblioteket for dit projekt, skal du liste indholdet af biblioteket (brug kommandoen ls), og du vil se en lib -underkatalog. Angiv indholdet i den mappe, og du vil se jar-filen identificeret i det globale bibliotek, som i mit eksempel er pi4j-core.jar. Alle biblioteker, du tilføjer til projektet, vises i lib -biblioteket og er således tilgængelige for alle programmerne i projekt jar -filen.

Trin 11: Go Have Fun

Jeg har beskrevet en tilgang til at opnå meget effektiv Java -udvikling til Raspberry Pi. Raspberry Pi er en enormt populær teknologi til et bredt spektrum af projekter. Java er et programmeringssprog i professionel kvalitet, der tilbyder ydelsesfordele i forhold til Python og tilbyder sikkerhedsmæssige fordele i forhold til C/C ++. NetBeans er en professionel IDE, der øger programmørens produktivitet kraftigt.

Jeg synes, at kombinationen er ganske overbevisende. Nu skal du have det sjovt ved at bruge kombinationen til dine projekter.

Anbefalede: