Kompilering og kørsel af Programmer

Link: https://lejos.sourceforge.io/nxt/nxj/tutorial/Preliminaries/CompileAndRun.htm

Dette afsnit beskriver, hvordan til at kompilere og køre leJOS NXJ programmer.

De fleste mennesker vil have lyst til at skrive Java-programmer, der kører på NXT mursten, men det er ikke den eneste mulighed. leJOS NXJ støtter også programmer, der kører på PC og NXT robotten på afstand. En sådan PC programmer, der kan styre en NXT robot, der kører leJOS NXJ menu. De kan også fjernstyre en robot, der kører standard LEGO firmware. En endnu mere interessant mulighed, at leJOS NXJ understøtter, er at skrive et program, der kører dels på NXT, og dels på en PC med to dele kommunikerer med hinanden over Bluetooth eller USB. Den del af dit program, der kører på PC ‘ en har mere hukommelse og processorkraft til rådighed til det, og kan gøre mere kompleks behandling. Det kan også vise interessante grænseflader, såsom kort over, hvor din robot til at udforske. Den del af programmet, der kører på NXT kan reagere hurtigt på sensorer og præcist kan styre motorer. Hvis du er interesseret i at skrive PC-programmer, se PC API command line tools – afsnittet nedenfor.

Mens vi er ved emnet, så er det også værd at nævne, at leJOS NXJ programmer kan også køre på mobiltelefoner eller andre enheder, der understøtter Java MicroEdition Miljø (JME). Sådanne programmer kan kommunikere med NXT via Bluetooth. Vi planlægger at tilføje et afsnit til lærer snart, der vil beskrive, hvordan man kan udvikle programmer, der bruger leJOS NXJ JME API.

Du kan også kommunikere med leJOS NXJ programmer fra Android – telefoner- se Android tutorial side.

Endelig, leJOS NXJ programmer, der kan være fordelt på flere NXT mursten, der kan kommunikere med hinanden via Bluetooth eller via RS485-kommunikation ved hjælp af NXT kabler, der forbinder havnen 4 af to eller flere NXT mursten. Åh, og NXT-programmer kan også kommunikere med eksterne enheder, såsom en Bluetooth-GPS-Modtagere. Dette er alle beskrevet i Communications tutorial side.

Vi starter dog med at skrive programmer, der kører på NXT mursten. Du kan enten kompilere og køre dine programmer at bruge leJOS NXJ kommando linje værktøj, eller du kan bruge et Integrated Development Environment (Integreret udviklingsmiljø) (IDE).

Mens command line tools er meget nyttige, programmering for leJOS NXJ er bedst gøres ved hjælp af en IDE-enhed. IDEs har syntaks-dirigerede redaktører, der straks vise dig alle syntaks-fejl i dit program, snarere end at vente, indtil du kompilere programmet, og derefter viser en liste af fejl. Dette, sammen med farvekodning af kildekoden, automatisk formatering af koden, hvilket fik metode navne og underskrifter, ekspanderende og kollapsende dele af dit program, og mange andre redigeringsfunktioner, som gør at oprette dit program en meget hurtigere og mere behagelig oplevelse. Men fordelene af den IDE, stopper ikke der: de skal også hjælpe dig med at skabe og opbygge projekter, debugging, generering af dokumentation, og oprettelse af bruger-grænseflader. Java IDEs sætte alle Sun Java-værktøjer og en række forskellige tredjeparts-værktøjer ved hånden. De gør at støtte nye værktøjer, simple, enten ved brug af plugins eller ved integration af eksterne værktøjer.

IDEs er nemt at sætte op og bruge, og du skal bruge dem til alle dine leJOS programmering – selv de simpleste projekter. Enhver type af leJOS NXJ program kan være skabt ved hjælp af en IDE.

Du kan producere leJOS NXJ programmer med enhver Java IDE. Denne tutorial har aktuelt afsnit om, hvordan man bruger to af de mest populære Jave IDEs: Eclipse og Netbeans. leJOS NXJ understøtter plugins for disse to IDEs, der gør det at skrive og teste dine programmer endnu enklere.

At lære at skabe, samle og køre dine programmer fra et Integreret udviklingsmiljø, skal du gå til et af følgende side:

Denne del af tutorial vil lære dig, hvordan man bruger det kommandolinje-værktøjer. Hvis du beslutter dig for at bruge kommandolinje værktøjer, du kan skrive dit program ved hjælp af redaktøren af dit valg. Mange programmør redaktører vil lade dig påberåbe sig de værktøjer direkte fra editoren.

En anden mulighed, du kan bruge til at kompilere og køre din leJOS NXJ programmer er at bruge ant bygge-scripts. ant bygge-scripts er normalt bruges fra en IDE. Netbeans er alle udarbejdelse og opbygning af programmer, der bruger ant, og det er en mulighed i Eclipse. Du kan dog også bruge ant fra kommandolinjen. ant bygge-scripts er til rådighed for alle de leJOS NXJ prøver. At køre ant build scripts du bare skifte mappe til den mappe, der indeholder build.xml fil og skriv ant.

De scripts, der er beskrevet i de følgende afsnit er Windows .bat-filer eller Unix shell scripts, afhængigt af hvilket operativsystem du bruger. De har oprettet klassen sti, bibliotek vej og starte i klasse sti, der er nødvendige ved leJOS NXJ og så sætte en Java-klasse, der gør alt arbejdet. Den eneste undtagelse til dette er nxjc, som bare kalder javac. Bemærk, at ant bygge-scripts bruger den samme underliggende Java klasser, men ikke bruger den scripts.

Ved at Bruge leJOS NXJ kommando linje værktøj

leJOS bruger standard Sun Java compiler for kompilering af programmer. Men det er nødvendigt at udskifte standard Java bibliotek med leJOS ‘ s egen version af denne – classes.jar. Af denne grund kan vi give en kommando, der hedder nxjc, der sætter boot klasse vej til classes.jar. Dens parameter er de samme som dem, så javac

leJOS NXJ programmer er forskellige fra normale Java-programmer i og med at de ikke understøtter dynamisk class loading. I stedet alle de klasser, der anvendes i programmet, der indsamles sammen og pakket i en binær fil med en .nxj forlængelse. Denne proces kaldes som forbinder. Den lænkede binære fil er derefter uploades til NXT.

Værktøjer til at samle, sammenkæde og uploade leJOS NXJ programmer er:

  • nxjc
  • nxjlink
  • nxjupload
  • nxj

Bemærk, at du normalt kun nødvendigt at bruge nxjc nxj – kommandoer, som nxj er tilsvarende af nxjlink efterfulgt af nxjupload.

Du er nødt til at åbne et kommandovindue for at køre disse kommandoer.

nxjc – compile a program (compile et program)

Udarbejder en eller flere java-filer.

Usage: nxjc <java-files>

Eksempel:

nxjc HelloWorld.java

nxjc opkald javac med parametre:

  • -bootclasspath <path to classes.jar>
  • <java-files>

-bootclasspath er indstillet, fordi leJOS ikke bruge standard java.lang klasser, men har sine egne versioner i classes.jar.

nxjlink – link a program (link et program)

Opkald leJOS NXJ linker.

Usage: nxjlink [-v|–verbose] [-g|–debug] [-gr|–remotedebug] [-a|–all] [-dm|–disablememcompaction] [-ea|–enableassertions] [-ec|–enablechecks] [-od|–outputdebug <debug-file> ] -o <binary> main-class

Eksempel:

nxjlink -v -o HelloWorld.nxj HelloWorld

Links den angivne vigtigste klasse med nogle klasser, der refererer i den aktuelle mappe og med standard leJOS klasser fra classes.jar at producere en binær NXJ program, der kan uploades og køre.

-v eller –verbose flag forårsager en liste af klasse navne og metode signaturer, der indgår i den binære fil for at blive sendt til standard output. Denne produktion er meget nyttige for fejlsøgning.

-g eller –debug flag forårsager en debug monitor til at indgå i programmet. Dette gør det muligt for programmet at blive afbrudt, mens du kører (ved at trykke på ENTER+ESCAPE) og giver stak lossepladser, når untrapped undtagelser forekomme.

-gr eller –remotedebug (ekstern debug) flag bruges til at skifte på remote debugging, som arbejder med nxjconsole eller nxjconsoleviewer værktøjer.

-od eller –outputdebug (udgang debug) flag er brugt til at angive et output debug fil, som bruges af remote debugging, og ved nxjdebugtool.

-ec eller –enablechecks (aktiver kontrol) flag bruges til at sætte yderligere run-time kontrol. Disse undersøgelser er relativt dyre (og sjældent generere fejl), og er derfor som standard slået fra. I øjeblikket er det kun kontrollere, at denne indstilling gør det muligt er det at teste for ArraystoreExceptions.

-ea eller –enableassertions (aktivere påstande) flag bruges til at aktivere kontrol af at hævde sætninger med programmet.

-dm eller — disablememcompactions (deaktiver hukommelse compactions) flag bruges til at deaktivere hukommelse jordpakning. Normalt leJOS garbage collector vil forsøge at flytte store objekter i hukommelsen for at maksimere mængden af sammenhængende plads, denne valgmulighed deaktiverer denne funktion.

Den linker fjerner metoder, der ikke anvendes. Angiv -a (en) eller –all (alle) til at omfatte alle de metoder, uanset om de er brugt eller ej. Det bør aldrig være nødvendigt.

Brug af -h eller –help flag til at udskrive valg.

nxjupload – upload a program (upload et program)

Usage: nxjupload [-b|–bluetooth] [-u|–usb] [-d|–address address] [-n|–name name] [-r|–run] <binary>

Eksempel:

nxjupload HelloWorld.nxj

Uploader den binære (.nxj) fil. Som standard USB-er forsøgt først, og derefter på Bluetooth. Hvis –bluetooth flag er angivet, er det kun Bluetooth er prøvet. Hvis –usb er angivet, kun USB-er prøvet.

Når Bluetooth er brugt, vil en søgning efter Bluetooth -address (adresse), der er gjort, medmindre-adresse er sat flag, når en enhed med de angivne adresse er tilsluttet.

— (name) Navn parameter begrænser søgningen til en NXT, med det givne navn. Hvis dette ikke er angivet, nxjupload forsøger at oprette forbindelse til hver NXT, at den fastslår, og vil uploade til den første NXT, der er oprettet forbindelse til.

Hvis — run (køre) parameter er angivet, kan det program, der køres, efter den er blevet uploadet.

nxj – link, upload and run a program (link, overføre og køre et program)

Usage: nxj [options] main-class

Eksempel:

nxj -r HelloWorld

Den nxj kommando links og uploader en leJOS NXJ program. Det svarer til, at nxjlink efterfulgt af nxjupload.

En af mulighederne for nxjlink nxjupload kan angives.

Standard binære navn er <main-class>.nxj, fx Tune.nxj.

Bruger-PC ‘ API command line tools

Værktøjer til at kompilere og køre leJOS PC API-programmer er:

  • nxjpcc
  • nxjpc

Påmindelse: Hvis du oversætter eller kører en PC API program uden at bruge disse værktøjer, du har brug for pccomm.jar bluecove.jar (Linux brugere også nødt bluecove-gpl) i din CLASSPATH. Bemærk, at classes.jar skal IKKE være en del af CLASSPATH for Java-software, der kører på PC ‘ en.

nxjpcc – compile a PC API program for your pc (udarbejde en PC API program til din pc)

Udarbejder en eller flere PC API java-filer.

Usage: nxjpcc [javac-options] <java-files>

Eksempel:

nxjpcc SensorTest.java

nxjpc – run a PC API program on your pc (køre en PC API program på din pc)

Usage: nxjpc [java-options] <main-class>

Opkald java til at køre din PC API program.

Eksempel:

nxjpc SensorTest