Компілювання та запуск leJOS NXJ програм

Посилання на оригінальну статтю: http://www.lejos.org/nxt/nxj/tutorial/Preliminaries/CompileAndRun.htm

 

У цьому розділі описано, як скомпілювати та запускати програми leJOS NXJ.

 

Більшість людей хочуть писати Java-програми, що працюють на блоках NXT, але це не єдиний варіант. leJOS NXJ також підтримує програми, що працюють на ПК, і віддалено керують роботом NXT. Такі комп’ютерні програми можуть управляти роботом NXT, який працює з меню leJOS NXJ. Вони також можуть дистанційно керувати роботом, який використовує стандартне програмне забезпечення LEGO. Ще більш цікавий варіант, який підтримує leJOS NXJ, – це програма, яка частково запускається на NXT, і частково на ПК, з двома частинами, які спілкуються один з одним через Bluetooth або USB. Частина вашої програми, яка працює на ПК, має більшу кількість пам’яті та обчислювальної потужності, і вона може зробити більш складну обробку. Він також може відображати цікаві користувацькі інтерфейси, такі як карти, які ваш робот досліджує. Частина програми, яка працює на NXT, може швидко реагувати на датчики і може точно контролювати двигуни. Якщо ви зацікавлені в написанні програм для ПК, перегляньте розділ інструментів командного рядка PC API нижче.

 

Поки ми зосередилися на цьому питанні, варто також зазначити, що програми leJOS NXJ також можуть працювати на мобільних телефонах або інших пристроях, що підтримують середовище Java MicroEdition (JME). Такі програми можуть спілкуватися з NXT через Bluetooth. Ми плануємо незабаром додати розділ до підручника, який описує, як розробляти програми, які використовують API leJOS NXJ JME.

 

Ви також можете спілкуватися з програмами leJOS NXJ з телефонів Android — перегляньте сторінку підручника для Android.

 

Нарешті, програми leJOS NXJ можуть бути розподілені по декількох блоків NXT, які можуть спілкуватися один з одним за допомогою Bluetooth або через зв’язок RS485, використовуючи кабелі NXT, що з’єднують порт 4 з двох або більше NXT блоків. О, і програми NXT також можуть спілкуватися з зовнішніми пристроями, такими як приймачі Bluetooth GPS. Це все описано в статті «Підручник з комунікацій».

 

Почнемо, однак, із написанням програм, що працюють на блоках ​​NXT. Ви можете компілювати і запускати свої програми за допомогою інструментів командного рядка leJOS NXJ або ви можете використовувати інтегроване середовище розробки (IDE).

 

Хоча інструменти командного рядка дуже корисні, програмування для leJOS NXJ найкраще виконувати за допомогою IDE. Інтегральні розробники мають синтаксичні редактори, які негайно показують вам всі синтаксичні помилки у вашій програмі, а не чекають, поки ви напишете програму, щоб потім показати список помилок. Це, разом із колірним кодуванням джерела, автоматичним форматуванням коду, підказками до імен методів та підписів, розширенням та згортанням частин вашої програми та багатьма іншими функціями редагування, створюють вашу програму набагато швидше та приємніше. Але переваги IDE не закінчуються: це також допомагає створювати та будувати проекти, налагоджувати, створювати документацію та створювати користувацькі інтерфейси. Java IDE поставляє всі засоби Sun Java та різноманітні сторонні інструменти під рукою. Вони роблять допоміжні нові інструменти простими, використовуючи плагіни або інтегруючи зовнішні інструменти.

 

IDE легко налаштувати та використовувати, і ви повинні використовувати її для всіх ваших програм leJOS — навіть найпростіших проектів. Будь-який тип програми leJOS NXJ можна створити за допомогою IDE.

 

Ви можете створювати програми leJOS NXJ з будь-яким IDE Java. Цей підручник наразі містить розділи про те, як використовувати два найбільш популярних IDE Jave: Eclipse і Netbeans. leJOS NXJ підтримує плагіни для цих двох середовищ розробки, що робить написання та тестування ваших програм ще простішим.

 

Щоб дізнатися, як створювати, компілювати та запускати програми з інтегрованого середовища розробки, перейдіть на одну з наступних сторінок:

 

 

Цей розділ навчального посібника навчить вас використовувати інструменти командного рядка. Якщо ви вирішите використовувати інструменти командного рядка, ви можете написати свою програму за допомогою редактора за вашим вибором. Багато редакторів програмування дозволять вам викликати інструменти безпосередньо з редактора.

 

Інший варіант, який ви можете використовувати для компіляції та запуску ваших програм leJOS NXJ, — це використання скриптів збірки ant. Сценарії створення ant зазвичай використовуються з IDE. NetBeans робить усю компіляцію та створення програм, використовуючи ant, і цей варіант є в Eclipse. Тим не менш, ви також можете використовувати ant з командного рядка. Для всіх зразків leJOS NXJ передбачені скрипти створення ant. Щоб запустити скрипти збірки ant, просто змініть каталог до каталогу, що містить файл build.xml, і наберіть ant.

 

Сценарії, описані в наступних розділах, — це файли Windows .bat або скрипти оболонки Unix, залежно від операційної системи, яку ви використовуєте. Вони встановлюють шлях до класу, шлях бібліотеки та шлях завантажувального класу, необхідні для leJOS NXJ, а потім викликають клас Java, який виконує всю роботу. Винятком є ​​nxjc, який просто викликає javac. Зверніть увагу, що сценарії створення ant використовують ті ж основні класи Java, але не використовують скрипти.

 

Повернутися до початку

 

Використання інструментів командного рядка leJOS NXJ

 

leJOS використовує стандартний компілятор Java Sun для складання програм. Тим не менш, вона повинна замінити стандартну бібліотеку Java власною версією leJOS — classes.jar. З цієї причини ми застосовуємо команду nxjc, яка встановлює шлях класу завантаження до classes.jar. Його параметри такі ж, як javac.

 

Програми leJOS NXJ відрізняються від звичайних програм Java, оскільки вони не підтримують динамічне завантаження класу. Замість цього всі класи, які використовуються в програмі, збираються разом і упаковуються у подвійний файл з розширенням .nxj. Цей процес називається зв’язуванням. Зв’язаний двійковий файл завантажується в NXT.

 

Інструменти для компіляції, підключення та завантаження програм leJOS NXJ:

 

  • nxjc
  • nxjlink
  • nxjupload
  • nxj

 

Зауважте, що вам зазвичай потрібно лише використовувати команди nxjc та nxj, оскільки nxj еквівалентна nxjlink, а потім nxjupload.

 

Вам потрібно відкрити вікно команд для запуску цих команд.

 

nxjc — компілювати програму

 

Компілює один або декілька файлів java.

 

Використання: nxjc <java-files>

 

Приклад:

 

nxjc HelloWorld.java

 

nxjc викликає javac з параметрами:

 

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

 

-bootclasspath встановлено, тому що leJOS не використовує стандартні класи java.lang, але має власні версії у classes.jar.

 

Повернутися до початку

 

nxjlink — посилання на програму

 

Закликає linker для leJOS NXJ.

 

Використання: nxjlink [-v | –verbose] [-g | –debug] [-gr | –remotedebug] [-а | –all] [-dm | –disablememcompaction] [-ea | –enableassertions ] [-ec | –enablechecks] [-od | –outputdebug <debug-file>] -o <binary> основний клас

 

Приклад:

 

nxjlink -v -o HelloWorld.nxj HelloWorld

 

Посилає зазначений основний клас на будь-які класи, які він посилається в поточному каталозі та зі стандартними класами leJOS з classes.jar, щоб створити бінарну програму NXJ, яку можна завантажити та запустити.

 

Прапорець -v або –verbose викликає список імен класів та підписів методу, включених у двійковій системі, для відправлення на стандартний вивід. Це введення надзвичайно корисне для налагодження.

 

Прапорець -g або –debug призводить до включення монітора налагодження до програми. Це дозволяє програмі перериватися під час роботи (натисканням клавіші ENTER + ESCAPE) і дає збірки стаків, коли виникають невикористані винятки.

 

Прапорець -gr або –remotedebug використовується для ввімкнення віддаленої налагодження, яка працює з nxjconsole або nxjconsoleviewer інструментами.

 

Прапорець -od або –outputdebug використовується для визначення вихідного файлу налагодження, який використовується для віддаленого налагодження та за допомогою nxjdebugtool.

 

Прапорець -ec або –enablechecks використовується для ввімкнення додаткових перевірок виконання. Ці перевірки відносно дорогі (і рідко генерують помилки), і тому вони за замовчуванням вимикаються. В даний час єдиною перевіркою, де цей параметр ввімкнено, є тестування для ArraystoreExceptions.

 

Прапорець -ea або –enableassertions використовується для того, щоб увімкнути перевірку тверджень програмою.

 

Прапорець -dm або –disablememcomparations використовується для вимкнення утилізації пам’яті. Зазвичай збирач сміття leJOS спробує перемістити великі об’єкти в пам’ять, щоб максимально збільшити кількість суміжного вільного місця, цей параметр вимикає цю функцію.

 

Лінкер видаляє методи, які не використовуються. Вкажіть -a або –все включати всі методи, незалежно від того, чи вони використовуються. Це ніколи не повинно бути необхідним.

 

Використовуйте прапорець -h або –help, щоб надрукувати параметри.

 

Повернутися до початку

 

nxjupload — завантажити програму

 

Використання: nxjupload [-b|–bluetooth] [-u|–usb] [-d|–address address] [-n|–name name] [-r|–run] <binary>

 

Приклад:

 

nxjupkra HelloWorld.nxj

 

Завантажує бінарний файл (.nxj). За замовчуваннямспочатку буде спробувано USB, а потім — Bluetooth. Якщо позначено прапорець –bluetooth, то буде спробуваний лише Bluetooth. Якщо вказано –usb, то буде спробуваний лише USB.

 

Коли використовується Bluetooth, виконується пошук пристроїв Bluetooth, за винятком випадків, коли встановлено прапорець -Address, до якого підключено пристрій із вказаною адресою.

 

Параметр –name обмежує пошук NXT з вказаним ім’ям. Якщо це не вказано, nxjupload намагається з’єднатися з кожним NXT, який він знаходить, і буде завантажуватись до першого NXT, який успішно підключиться.

 

Якщо вказано параметр –run, програма запускається після її завантаження.

 

Повернутися до початку

 

nxj — виконати посилання, завантажити та запустити програму

 

Використання: nxj [options] main-class

 

Приклад:

 

nxj -r HelloWorld

 

Команда nxj зв’язує та завантажує програму leJOS NXJ. Це еквівалент nxjlink, а потім nxjupload.

 

Можна вказати будь-який параметр nxjlink та nxjupload.

 

Бінарне ім’я за замовчуванням – <main-class> .nxj, наприклад Tune.nxj.

 

Повернутися до початку

 

Використання інструментів командного рядка PC API

 

Інструменти для компіляції та запуску програм leJOS PC API:

 

  • nxjpcc
  • nxjpc

 

Нагадування: якщо ви збираєте або запускаєте програму PC API без використання цих інструментів, вам потрібні pccomm.jar та bluecove.jar (для користувачів Linux потрібен також bluecove-gpl) у вашому CLASSPATH. Зауважте, що class.jar НЕ повинен бути частиною CLASSPATH для програмного забезпечення Java, яке працює на ПК.

 

nxjpcc — скомпілювати програму для PC API на ПК

 

Компілює один або декілька Java-файлів у PC API.

 

Використання: nxjpcc [javac-options] <java-files>

 

Приклад:

 

nxjpcc SensorTest.java

 

Повернутися до початку

 

nxjpc — запустити програму PC API на комп’ютері

 

Використання: nxjpc [java-options] <main-class>

 

Запускає Java для запуску програми PC API.

 

Приклад:

 

nxjpc SensorTest

 

Повернутися до початку