пятница, 1 ноября 2013 г.

Настройка SDK для TC65 в Debian

Разработка приложений для TC65 в NetBeans IDE (версия 7.4 на момент написания статьи) требует наличия мобильной платформы Java от Siemens, которая поставляется в составе дистрибутивного CD. Особенностью этой платформы является отсутствие у устройства экрана и клавиатуры, что описывается профилем IMP/IMP-NG в отличие от MIDP.

Средства разработки для TC65 от Siemens ориентированы на операционную систему Windows. Но это не является препятствием для аналогичной разработки в среде Linux, в частности Debian (Wheezy) - дистрибутив который я буду рассматривать.

Из всего дистрибутива Siemens CD потребуется только папка WTK. Чтобы ее получить, не обязательно проводить процедуру Windows инсталляции пакета SDK. Достаточно скопировать нужную папку в каталог Linux. Если CD в архиве, то средствами последнего извлекаем папку WTK.

Запускаем среду разработки NetBeans и переходим в <Сервис / Платформы Java>. По умолчанию там размещается платформа Java SE (если конечно она проинсталлирована). Для добавления новой платформы щелкаем на кнопке <Добавить платформу...> и в следующем окне выставляем радиопереключатель на позицию <Пользовательский эмулятор платформы CLDC Java ME>. Жмем кнопку <Далее> и в группе общие сведения указываем параметры платформы. В параметре "Начальная страница платформы" задаем папку WTK. Имя платформы и имя устройства по вашему усмотрению. Остальные параметры без изменений.

Если добавляемая платформа Java корректна, на следующем экране в группе "Обнаруженные API интерфейсы" мы увидим используемый профиль и конфигурацию, а выше список библиотек начальной загрузки. На следующем экране можно задать путь к документации для javadoc. Кажется все, но если по кнопке <Готово> мы завершим операцию добавления платформы Java, последняя будет добавлена с ошибкой, что в указанной папке она не обнаружена. Исправим это.

в каталоге WTK/bin создадим скрипт emulator следующего содержания
#!/bin/sh
wine <каталог с WTK>/bin/emulator.exe $*
Аналогичный скрипт нужен и для preverify. После этих "неочевидных моментов" (как точно назвал их один автор, ссылка на которого дана в конце), NetBeans подключит новую платформу Java без ошибок. На данном этапе появиться возможность создавать приложения для платформы Siemens, однако при компиляции будет выдана критическая ошибка
Error preverifying class mobapp.IMlet
    java/lang/NoClassDefFoundError: javax/microedition/midlet/MIDlet
/home/am/NetBeansProjects/MobApp/nbproject/build-impl.xml:431: Preverification failed with error code 1.
СБОРКА ЗАВЕРШЕНА СО СБОЕМ (общее время: 0 секунд)
Я не стал разбираться с этой ошибкой, а попробовал метод с применением Sun Java Wireless Toolkit. Скачав пакет с сайта Oracle (требует учетной записи) и установив, я перекинул файлы emulator, preverify и preverify.1.1 в каталог WTK/bin. После этого процесс компилляции завершился успешно.
Ссылки на источники: Настройка SDK для TC65i под Linux, Siemens TC65 Development Under Linux
Ссылки на ресурсы: Sun Java Wireless Toolkit 2.5.2_01 for CLDC Download