Этот раздел покажет вам, как использовать J2SE Wireless Toolkit, разработанный в отделе «Java Software» компании «Sun», для выполнения всех этапов цикла разработки, который вы выполнили вручную. Вы можете загрузить J2ME Wireless Toolkit бесплатно с Web-страницы Java Software на сайте Sun Microsystems, http://java.sun.com. Загрузите версию, соответствующую вашей операционной системе, и следуйте инструкциям по установке, предоставляемым при загрузке.
Создание пpoeктa
Свойства и функции Wireless Toolkit базируются на проектах. Проект представляет собой разработку набора из одного или более MID-летов. Завершение выполнения цикла разработки проекта выражается в создании файлов приложения JAR и JAD и файла манифеста, который описывает файл JAR.
KToolbar является основной утилитой Wireless Toolkit. На рисунке 2.1 показано главное окно KToolbar. Обратите внимание, что во время запуска он предлагает вам создать новый проект или открыть существующий и снова использовать исходный код, который вы уже видели в примерах с использованием командной строки.
Рисунок 2.1. KToolbar является главным окном, из которого вы можете получить доступ ко всем функциям Wireless Toolkit
Первый этап затем заключается в создании нового проекта. Я собираюсь создать проект HelloWorld и вновь использовать исходный код, который вы уже видели. На рисунке 2.2 показано окно, которое всплывает, когда вы выбираете пункт New Project… (Новый проект…) в строке меню KToolbar.
Рисунок 2.2. Чтобы создать новый проект, вы должны задать, по крайней мере, один MID-лет. Вы должны предоставить имя проекта и имя основного класса Java для первого MID-лета
После того как вы введете и подтвердите имя проекта и имя класса MID-лета, появится окно, показанное на рисунке 2.3.
Рисунок 2.3. Wireless Toolkit создает файлы манифеста и JAD для вас, основываясь на информации, которую вы предоставили в этом окне, которое представляет из себя обязательные поля дескриптора приложения
Это окно предложит вам ввести необходимую информацию о вашем проекте, которая будет использоваться для создания файла манифеста JAR и файла JAD. Заметьте, что закладка Required (Требуемые атрибуты) всегда показывается вначале при появлении окна. Атрибуты, которые вы видите, соответствуют атрибутам, перечисленным в таблице 2.4, обязательным атрибутам дескриптора приложения. Вы можете изменять информацию, установленную по умолчанию, например, атрибуты MIDlet-Vendor или MIDlet-Jar-URL.
На рисунке 4 показана панель, которая появляется, когда вы выбираете закладку Optional (Необязательные атрибуты). Она позволяет вам вводить информацию о полях обязательных атрибутов MID-лета, которые вы видели ранее в таблице 2.5.
Рисунок 2.4. Эта панель позволяет вам редактировать необязательные атрибуты мета-информации вашего файла дескриптора приложения для вашего MID-лета
После завершения этого этапа главное окно KToolbar выведет три строки информационных сообщений в своей панели вывода результатов диагностики. Они сообщат вам, где размещены ваши исходные файлы Java, файлы ресурсов приложения и файлы библиотеки приложения. На рисунке 2.5 показано обновленное окно KToolbar.
Рисунок 2.5. После того как вы завершите ввод необходимой информации о наборе МЮ-летов, KToolbar покажет, где разместить файлы конкретного приложения. Обратите внимание, что файлы ресурсов помещаются в директорию приложения res/, а не в директорию bin/
В версии 1.0.3 J2ME WTK добавлена закладка User Defined (Определяемые пользователем) к основной панели Settings (Параметры). Вы можете видеть эту закладку User Defined (Определяемые пользователем) на рисунках 2.3 и 2.4. На рисунке 6 показана панель User Defined (Определяемые пользователем), которая появляется, когда вы нажимаете на закладку User Defined (Определяемые пользователем).
Панель, показанная на рисунке 2.6, позволяет вам задать атрибуты приложения. Обратите внимание, что панель имеет кнопку Add (Добавить), которая позволяет вам добавлять дополнительные атрибуты. В главе 9 есть несколько примеров, которые покажут вам, как добавлять выборочные атрибуты с помощью Wireless Toolkit и как использовать атрибуты в ваших приложениях.
Рисунок 2.6. Разработчики приложения могут устанавливать определенные атрибуты для одного или более MID-летов в наборе MID-летов
Если вы взглянете еще раз на рисунки 2.3 и 2.4, вы увидите, что панели Required (Требуемые атрибуты) и Optional (Необязательные атрибуты) не позволяют вам добавлять какие-либо атрибуты в них. Вы можете только редактировать значения атрибутов, которые уже есть. Вы не можете добавлять обязательные поля, потому что они стандартизованы. Набор необязательных полей также стандартизован, хотя их присутствие не обязательно.
После того как вы закончите этот цикл начального определения набора MID-лета, вы всегда можете отредактировать значения любого из атрибутов MID-лета. Выберите кнопку Settings (Параметры) в строке меню KToolbar. Когда вы это сделаете, вновь появится окно, показанное на рисунке 2.3. Внесите желаемые изменения и нажмите ОК.
Размещение исходного кoдa в пpoeктe
Теперь пришло время поместить исходный файл приложения внутри проекта, как указано в панели результатов диагностики KToolbar. Когда вы создадите новый проект, KToolbar создаст соответствующие директории под структурой директорий установки, как вы уже видели, когда использовали интерфейс командной строки. Вспомните, что на моей системе эта директория располагается в /cygdrive/c/J2mewtk/apps.
Под этой директорией существует директория проекта HelloWorld. Ваш следующий шаг заключается в размещении исходного файла HelloWorld. Java вручную под директорией HelloWorld/src/. Конечно, если бы вы действительно создавали проект с нуля, вы бы сначала создали исходник с помощью своего любимого текстового редактора.
Компиляция пpoeктa
Теперь вы готовы к компиляции. Нажмите на кнопку Build (Создать) на панели кнопок главного окна KToolbar. Wireless Toolkit откомпилирует исходный файл HelloWorld.java и выдаст результат диагностики в главном окне KToolbar, которое показано на рисунке 2.7. Конечно, если ваша компиляция не удастся, обычный благоприятный результат компиляции появится на этой панели.
Рисунок 2.7. Компиляция вашего проекта выведет дополнительные результаты диагностики в главном окне KToolbar
Если результаты вашей компиляции кажутся вам неубедительными, вы можете использовать ваш командный процессор для подтверждения наличия файлов. class в директориях tmpclasses/ и classes/:
$ pwd
/cygdrive/с/J2mewtk/apps/HelloWorId/tmpclasses
$ Is -1
total 8
— rw-r-r— 1 vartan None 2036 HelloWorld.class
$
? cd../classes/
5 pwd
/cygdrive/с/J2mewtk/apps/HelloWorld/classes
$ Is -1
total 8
— rw-r-r- 1 vartan None 2036 HelloWorld.class
Как вы уже знаете, директория tmpclasses/ содержит файлы. class, созданные в самом процессе компиляции. Директория classes/ содержит предварительно проверенные файлы, созданные утилитой preverifу. J2ME WTK запускает утилиту preverify автоматически, когда вы нажимаете на кнопку Build (Создать) KToolbar.
Упаковка проекта
После того кай вы выполните компиляцию, вы должны упаковать приложение, что вы уже делали при работе с инструментами командной строки. На панели кнопок KToolbar нет кнопки Package (Упаковка). Вместо этого раскройте пункт меню Project (Проект) в меню KToolbar и выберите пункт меню Package (Упаковка), как показано на рисунке 2.8.
Рисунок 2.8. Выберите пункт меню Package (Упаковка) для упаковки вашего приложения. На этом этапе создаются файлы JAD и JAR приложения
Рисунок 2.9 показывает результат диагностики, созданный, когда вы закончили процесс упаковки. Заметьте, что он показывает, что Wireless Toolkit создал файлы Hello World jar и HelloWorld.jad.
Рисунок 2.9. Этап упаковки на самом деле компилирует приложение прежде, чем его упаковать. Результат диагностики отражает выполнение этапов компиляции и упаковки
Вы можете вновь проверить наличие этих файлов, вручную выведя описание содержимого директории bin/ проекта:
$
pwd /cygdrive/c/J2mewtk/apps/HelloWorld/bin
$ Is -1
total 3
— rw-r-r- 1 vart'an None 282 HelloWorld.jad
— rw-r-r- 1 vartan None 6960 HelloWorld.jar
— rw-r-r- 1 vartan None 29V MANIFEST.MF
S
На самом деле упаковка вашего приложения с помощью J2MEWTK сначала компилирует и предварительно проверяет вашу программу, а затем упаковывает ее. Так что вы можете пропустить процесс явной компиляции, описанный в предыдущем разделе, и просто упаковать ваше приложение до его раскрытия и тестирования. Однако явный этап компиляции важен, если вы хотите откомпилировать вашу программу без ее упаковки.