Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Kompajlovanje i pokretanje Programa




Ovaj odeljak objašnjava kako treba kompajlovati i pokrenuti leJOS NXJ programe.

Većina ljudi će želeti da napiše Java programe koji se pokreću u NXT brick-u, ali to nije jedina opcija, leJOS NXJ takođe podržava programe koji se pokreću na PC-u i daljinski kontrolišu NXT robota. Takvi PC programi mogu kontrolisati NXT robota, pokrećući leJOS NXJ meni. Takođe mogu daljinski kontrolisati robota, pokrećući standardni LEGO firmware. Još zanimljivija opcija koju leJOS NXJ podržava je pisanje programa koji se delom pokreće u NXT-u, a delom na PC- u, uz to da oba dela komuniciraju jedan s drugim preko Bluetooth-a ili USB-a. Deo vašeg programa koji se pokreće na PC-u ima više memorije i procesorske snage na raspolaganju, pa otud može da izvršava kompleksnije procesuiranje. Takođe može da prikazuje zanimljive korisničke interfejsove, poput mapa gde vaš robot istražuje . Deo programa koji se pokreće u NXT-u može da brzo odgovori senzorima i precizno upravlja motorima. Ukoliko ste zainteresovani za pisanje PC programa, pogledajte PC API command line tools odeljak u nastavku.

Dok smo još na ovoj temi, takođe je vredno pomenuti da se leJOS NXJ programi mogu isto tako pokrenuti na mobilnim telefonima, ili drugim aparatima koji podržavaju Java MicroEdition Environment (JME). Takvi programi mogu komunicirati sa NXT-om preko Bluetooth-a. Mi planiramo da uskoro dodamo vodiču odeljak koji će opisati kako razviti programe koji koriste leJOS NXJ JME API.

Takođe možete komunicirati sa leJOS NXJ programima sa Android telefona - pogledajte Android stranu vodiča.

Naposletku, leJOS NXJ programi se mogu distribuisati preko višestrukih NXT brick-ova, koji mogu komunicirati jedan s drugim preko Bluetooth-a, ili putem RS485 komunikacija, koristeći port 4 NXT kablova, za povezivanje dva ili više NXT brick-ova. O da, i NXT programi takođe mogu komunicirati sa eksternim uređajima poput Bluetooth GPS risivera. Sve ovo je opisano na Communications strani vodiča.

Mi ćemo, međutim, startovati sa pisanjem programa koji se pokreću u NXT brick-u. Vi možete, ili kompajlovati i pokrenuti svoje programe koristeći leJOS NXJ komandnu liniju alata (command line tools), ili možete upotrebiti Integrated Development Environment (integrisano razvojno okruženje) (IDE).

Iako je komandna linija alata veoma korisna, programiranje za leJOS NXJ se najbolje izvršava upotrebom IDE. IDE-e poseduju editore usmerene na sintaksu, koji će vam trenutno prikazati greške sintakse u vašem programu, umesto da čekaju dok vi kompajlujete program i tada prikažu listu greška. Ovo, zajedno sa kolor kodiranjem izvora, automatskim formatiranjem koda, navodi na metod imena i potpisa, širenje i dovđenje do kolapsa delova vašeg programa, i mnoge druge editorske karakteristike, čine kreiranje vašeg programa puno bržim i ugodnijim iskustvom. Ali se prednosti IDE tu ne završavaju: one vam takođe pomažu u kreiranju i izgradnji projekata, uklanjanjem štetnih programa, sakupljanjem dokumentacije i stvaranjem korisničkih interfejsova. Java IDE-e stavljaju sve Sun Java alate i mnoštvo alata treće strane, u vaše ruke. Oni čine podršku novim alatima jednostavnom, bilo upotrebom dodataka, ili integrisanjem spoljnih alata.

IDE-e su jednostavne za postavljanje i upotrebu I trebalo bi da ih koristite za svako vaše leJOS programiranje – čak i za najjednostavnije projekte. Bilo koji tip leJOS NXJ programa može se stvoriti upotrebom IDE.

Možete proizvesti leJOS NXJ programe uz pomoć bilo koje Java IDE. Ovaj vodičl trenutno poseduje odeljke o tome kako koristiti dve najpopularnije Jave IDE-e: Eclipse i Netbeans. leJOS NXJ podržava dodatke za ove dve IDE-e, što čini pisanje i testiranje vaših programa još jednostavnijim.

Da biste naučili kako da kreirate, kompajlujete i pokrenete svoje programe iz Integrated Development Environment (IDE), idite na sledeću stranu

Using a Java IDE with leJOS (Korišćenje Java IDE uz pomoć leJOS)

Ovaj odeljak vodiča će vas naučiti kako da koristite komandnu liniju alata. Ukoliko rešite da koristite komandnu liniju alata, možete napisati svoj program koristeći editor po svom izboru. Mnogi programerski editori će vam dozvoliti da prizovete alate direktno iz editora.

Druga opcija koju možete koristiti za kompajlovanje i pokretanje vaših leJOS NXJ programa je da upotrebite ant (mrav) scenarije izgradnje. ant scenariji izgradnje se obično koriste iz IDE. Netbeans odradi celo kompajlovanje i izgradnju programa koristeći ant, i to je opcija u Eclipse. Međutim, takođe možete upotrebiti ant sa komandne linije. ant scenarijii izgradnje su dostupni za sve leJOS NXJ uzorke. Za pokretanje ant scenarija izgradnje, samo promenite naredbu u sadržaju naredbe izgradnje.xml datoteke i tip ant.

Scenariji opisani u narednim odeljcima su Windows .bat datoteke, ili Unix shell scenariji, u zavisnosti od toga koji operativni sistem koristite. Oni određuju class path(putanju do razreda), library path(putanju do biblioteke) i boot class path(putanju do pokretanja) potreban leJOS NXJ- u i zatim pozivaju Java razred, koji odradi ceo posao. Izuzetak od ovoga je nxjc, koji samo poziva javac. Obratite pažnju da ant scenariji izgradnje koriste iste osnovne Java razrede, ali ne koriste scenarije.

Back to top

Upotreba leJOS NXJ komandne linije alata

leJOS koristi standardni Sun Java kompajler za kompajlovanje programa. Međutim, to zahteva zamenu standardne Java biblioteke leJOS-ovom sopstvenom verzijom iste - classes.jar. Iz ovog razloga mi omogućujemo komandu koja se naziva nxjc koja podešava the boot class put do classes.jar. Njen parameter je isti kao onaj kod javac-a.

leJOS NXJ programi se razlikuju od normalnih Java programa u tome što oni ne podržavaju dinamično učitavanje razreda. Umesto toga, razredi korišćeni u programu sakupljeni su zajedno i upakovani u binarnu datoteku sa.nxj ekstenzijom. Ovaj proces se posmatra kao povezivanje. Povezani binarni program je onda otpremljen u NXT.

Alati za kompajlovanje, povezivanje i aploudovanje leJOS NXJ programa su:
Primećujete da vam je obično jedino potrebno da upotrebite nxjc i nxj komande, budući da nxj radi isto što i nxjlink praćen nxjupload.

Potrebno vam je da otvorite komandni prozor za pokretanje ovih komandi.

nxjc – compile a program (kompajluj program)

Kompajluje jednu ili više java datoteka.

Upotreba: nxjc <java-files>


Primer:

nxjc HelloWorld.java

nxjc calls javac with parameters:

-bootclasspath je postavljen zato što leJOS ne koristi standardne java.lang razrede, ali poseduje svoju sopstvenu verziju u classes.jar.

Back to top

nxjlink – link a program (poveži program)

Poziva leJOS NXJ povezivač (linker).

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

Primer:

nxjlink -v -o HelloWorld.nxj HelloWorld

Poveži dati glavni razred sa bilo kojim razredima koje on preporučuje u trenutnoj naredbi i sa standardnim leJOS razredima iz classes.jar da proizvedu binarni NXJ program koji može biti otprmljen I pokrenut.

The -v or --verbose flag (verbalna zastavica) izbacuje spisak naziva razreda i metodom potpisa, ih uključuje u binarni program kako bi bili poslati u standardni izlaz. Ovaj izlaz je ekstremno koristan za uklanjanje štetnih programa.

The -g or --debug flag (zastavica-oznaka-za uklanjanje štetnih programa) utiče na to da "stražar" za štetne programe bude uključen u program. Ovo dozvoljava programu da bude prekinut dok radi (pritiskom na ENTER+ESCAPE) i ostavi gomilu đubreta kada se jave oslobođeni izuzeci.

The -gr or --remotedebug flag(zastavica-oznaka-za daljinsko uklanjanje štetnih programa) se koristi za prebacivanje na daljinsko uklanjanje štetnih programa, što se radi sa nxjconsole ili nxjconsoleviewer alatima.

The -od or --outputdebug flag(zastavica-oznaka-za izlaz uklanjanja štetnih programa) se koristi za određivanje izlaza datoteke iz koje su uklonjeni štetni programi, što se radi daljinskim uklanjanjem štetnih programa i pomoću nxjdebugtool.

The -ec or --enablechecks flag (zastavica-oznaka-za obezbeđivanje provera) se koristi da se obezbedi dodatno vreme za obavljanje provera. Ove provere su relativno skupe (i retko generišu greške) pa su zato po standardu isključene. Trenutno je jedina provera koju ova postavka omogućuje testiranje za ArraystoreExceptions (izuzetke skladišta niza).

The -ea or --enableassertions flag (zastavica-oznaka za obezbeđivanje tvrdnji) se koristi da obezbedi proveru izjava tvrdnji programom.

The -dm or –disablememcompactions flag (zastavica-oznaka za onesposobljavanje sabijanja memorije) se koristi da onemogući sabijanje memorije. Obično će leJOS sakupljač đubreta pokušati da premesti krupne objekte u memoriju radi ostvarivanja maksimalne veličine preostalog slobodnog prostora, ova opcija onemogućuje tu karakteristiku.

Povezivač uklanja metode koje se ne koriste. Odaberi –a ili –all (sve), da bi uključio sve metode bilo da su u upotrebi ili ne. Ovo ne bi trebalo da je neophodno.

Upotrebi -h ili –help(pomoć) zastavicu za štampanje opcija.

Back to top

nxjupload – upload a program (otpremi program)

Upotreba: nxjupload [-b|--bluetooth] [-u|--usb] [-d|--address address] [-n|--name name] [-r|--run]

Primer:

nxjupload HelloWorld.nxj

Otpremi binarnu (.nxj) datoteku. Po standardu se USB prvi proverava, a zatim Bluetooth. Ukoliko je --bluetooth zastavica obeležena, samo se Bluetooth proverava. Ukoilko je --usb obeležen, jedino se USB proverava.

Kada se koristi Bluetooth, pretraga je obavljena za Bluetooth uređaje, osim ako je oznaka - adrese postavljena, kada je uređaj sad atom adresom povezan.

The –parametar naziva ograničava NXT pretragu zadatim nazivom. Ukoliko ovo nije zadato, nxjupload pokušava da se poveže na svaki NXT koji pronađe i učitaće se na prvi NXT na koji se uspešno poveže.

Ukoliko je –run(pokreni) parametar zadat, program je pokrenut nakon što se parameter učita.

Back to top

nxj – link, upload and run a program (veza, otpremanje-učitavanje i pokretanje programa)

Upotreba: nxj [options] main-class

Primer:

nxj -r HelloWorld

nxj komandni linkovi i otprmanja leJOS NXJ programa. U pitanju je ekvivalent za nxjlink praćen nxjupload.

Bilo koja opcija za nxjlink i nxjupload može biti precizirana.

Standardni binarni naziv je .nxj, npr. Tune.nxj.

Back to top

Korišćenje PC API alata komandne linije

Alati za kompajlovanje i pokretanje leJOS PC API programa su:

Podsetnik: Ako kompajlujete ili pokrećete PC API program bez upotrebe ovih alata, potrebne su vam pccomm.jar i bluecove.jar (Linux korisnicima takođe treba bluecove-gpl) u vašem CLASSPATH i classes.jar mora biti uklonjena. Takođe,data staza java biblioteke mora biti postavljena.

nxjpcc – compile a PC API program for your pc (kompajluje PC API program za vaš pc)

Kompajluje jednu ili više PC API java datoteka.

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


Primer:

nxjpcc SensorTest.java


Back to top

nxjpc – run a PC API program on your pc (Pokreće PC API program na vašem pc-u)

Upotreba: nxjpc [java-options]

Poziva java-u da pokrene vaš PC API program.

Primer:

nxjpc SensorTest


Back to top



Published (Last edited): 24-09-2012 , source: http://lejos.sourceforge.net/nxt/nxj/tutorial/Preliminaries/CompileAndRun.htm