Чтение онлайн

на главную - закладки

Жанры

Шрифт:

Я сначала создаю директорию под названием HelloWorld, что является названием примера нашего первого приложения, под директорией apps/, предназначенной для установки инструментария для работы с беспроводными устройствами. Эта директория является корневой для вашего нового проекта. Проект — это организованное объединение ресурсов — исходного кода, файлов ресурсов, откомпилированных файлов, — специфических для одного или более связанных приложений.

Корневой каталог проекта содержит подкаталоги, показанные в следующем примере кода:

$ pwd

/cygdrive/c/ J2rnewtk/apps/HelloWorld

3 Is — F

bin/ classes/ res/ src/ tmpclasses/

Есть причина для использования такой точной структуры каталогов, которую я объясню далее, когда вы узнаете, как использовать эмулятор Wireless Toolkit Emulator. Однако даже если вы не планируете использовать J2ME Wireless Toolkit, такая организационная структура является самой разумной для начала работы. В таблице 2.1 объяснено содержание и цель этих каталогов.

Таблица 2.1. Поддиректории проектов, созданных с помощью J2ME Wireless Toolkit

Название поддиректории — Содержание директории

Bin — Файлы приложения: файл. jar, файл. jad, MANIFEST.MF

classes — Откомпилированные и предварительно проверенные файлы. class

Res — Файлы ресурсов приложения, такие, как файлы изображений. png в формате PNG

Src — Файлы исходного приложения

tmpclasses — Откомпилированные, непроверенные файлы. class

Я не буду объяснять здесь проектировку самого приложения, поскольку эта тема лежит за пределами темы этой главы. Цель на данный момент заключается не в том, чтобы описать, как проектировать приложения Java или даже приложения MIDP. В последующих главах, однако, будет говориться об организации MIDP-приложений.

Компиляция

Следующим этапом в цикле разработки после создания вашей программы является компиляция исходной программы. Прежде чем вы приступите к компиляции, убедитесь, что список командных путей среды вашей оболочки включает маршрут к директории, в которой содержатся утилиты J2ME на вашем компьютере.

Общая форма строки компиляции представляет из себя следующее:

S javac — d <tmpclasses dir> — bootclasspath <midpapi.zip location> \

<location of Jva sourcce fie(s)>

Указание — d сообщает компилятору директорию, в которую нужно записывать непроверенные откомпилированные классы. Указание — bootclasspath указывает местоположение файла midpapi.zip, который поставляется вместе с инструментарием J2ME Wireless Toolkit, разработанным «Java Software», и содержит все классы MIDP, которые вам необходимы для написания приложений на J2ME. Среды разработки коммерческих производителей также включают этот файл. Указание — bootclasspath также сообщает компилятору о превосходстве над любой спецификацией CLASSPATH, которую вы, возможно, установили в среде своей оболочки. Заметьте, что это должен быть относительный маршрут доступа к файлу (relative pathname,) — относительный к корневой директории проекта. Наконец, вы указываете имена путей исходных файлов Java, которые вы компилируете.

Чтобы откомпилировать набор MID-летов HelloWorld из директории apps/HelloWorld/, используйте следующую команду:

$ javac — d tmpclasses \

— bootclasspach../../lib/midpapi.zip src/HelloWorld.Java

$

Указание — d сообщает компилятору записать непроверенные компилированные классы в директорию tmpclasses, которая является поддиректорией каталога HelloWorld/. Указание — bootclasspath определяет путевое имя относительно данного каталога. Наконец, последний параметр указывает относительное путевое имя исходного файла HelloWorld.Java.

Вы узнали, что библиотеки MIDP и CLDC определяют полную платформу для создания приложений на MIDP. Следовательно, вам не придется включать путь для любой J2SE установки в CLASSPATH вашей среды при компилировании ваших приложений. В действительности вы не можете включить его. Если вы это сделаете, вы получите ошибку компиляции, поскольку компилятор найдет конфликтующие определения в библиотеках J2SE и J2ME.

После завершения компиляции ваших файлов директория tmpclasses будет содержать непроверенные файлы. class:

$ Is — I tmpclasses/

total 0

— rw-r-r- 1 vartan None 922 HelloWorld.class

$

Предварительная проверка

Следующим этапом после компиляции является предварительная проверка файлов. class, которые вы только что откомпилировали. Чтобы провести ее, запустите следующую команду:

$ preverify — classpath"../../lib/midpapi.zip;tmpclasses" — d classes \

tmpclasses

S

Если вы используете J2ME Wireless Toolkit, вы должны отделить элементы пути классов точками с запятой, или заключить их в кавычки, если вы используете оболочку Unix, чтобы избежать того, что оболочка начнет интерпретировать точки с запятой. Элементы путей классов представляют собой директории, из которых должны загружаться классы. Разделитель элемента пути класса — точка с запятой в данном случае — зависит от платформы.

Параметр — d указывает директорию, в которую должны быть записаны предварительно проверенные выходные классы, генерируемые с помощью этой команды. Наконец, имя замыкающей директории, tmpclasses, показывает местонахождение, из которого можно получить непроверенные файлы классов, которые были созданы на предыдущем этапе компиляции.

Запуск вышеуказанной команды preverify создает предварительно проверенные файлы. class в директории классов в соответствии с вашими указаниями:

S Is — I classes/

total 0

— rw-r-r- 1 vartan None 922 HelloWorld.class

$

Команда preverify является инструментом предварительной проверки файлов классов, который используется в процессе проверки файлов классов. Проверка файлов классов в CLDC, как и в J2SE, является процессом проверки истинности файлов классов Java и отклоняет неправильные файлы. Однако в отличие от процесса проверки в J2SE проверка файлов классов в CLDC включает два этапа:

Поделиться:
Популярные книги

Принадлежать им

Зайцева Мария
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Принадлежать им

Антология странного рассказа

Коллектив авторов
Проза:
современная проза
5.00
рейтинг книги
Антология странного рассказа

Тринадцатый X

NikL
10. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Тринадцатый X

Адвокат Империи 16

Карелин Сергей Витальевич
16. Адвокат империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Адвокат Империи 16

Вернувшийся: Посол. Том IV

Vector
4. Вернувшийся
Фантастика:
космическая фантастика
киберпанк
5.00
рейтинг книги
Вернувшийся: Посол. Том IV

Трапеция

Брэдли Мэрион Зиммер
Проза:
современная проза
5.00
рейтинг книги
Трапеция

Хозяин Стужи 6

Петров Максим Николаевич
6. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 6

Мечник Вернувшийся 1000 лет спустя

Ткачев Андрей Юрьевич
1. Вернувшийся мечник
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Мечник Вернувшийся 1000 лет спустя

Города в полете

Блиш Джеймс Бенджамин
Фантастика:
космическая фантастика
4.25
рейтинг книги
Города в полете

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

Моров. Том 8

Кощеев Владимир
7. Моров
Фантастика:
альтернативная история
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Моров. Том 8

Первый среди равных. Книга V

Бор Жорж
5. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга V

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5