English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
J2ME разработке программного обеспечения для сотовых телефонов
(2002)
Colin Fahey
moto_t720_open_lightanddark02.jpg
Motorola T720 сотовых телефонов, указанных открыл

1. Предупреждение

Этот документ устарел!  Информация, содержащаяся в данном документе, возможно, были действительными и полезными в год 2002, но многие вещи изменились в последующие годы!  В этом документе должны теперь рассматриваться только как интересный исторический отчет о 2002 год.  Не полагайтесь на какую-либо информацию или помощь в этом документе.  Вся техническая информация в настоящем документе, являются весьма устарели. 

Загрузка самоуправления создали программное обеспечение, самостоятельно созданные образы, и самостоятельно создали телефон мелодии оповещения (например, «рингтоны),» было сравнительно редким и сложным в год 2002.  К сожалению, шесть лет спустя, некоторые сотовый телефон услуг (в том числе Apple, который обеспечивает исключительное программного обеспечения и «мелодии» портал для iPhone) по-прежнему вводят ограничения на загрузку программного обеспечения, изображений и музыки, потому что сотовый телефон услуг, которыми пользуются очень большие финансовые выгоды путем контроля за этими видами загрузок. 

К счастью, сотовых телефонов, такие, как драйверы «Android» программного обеспечения платформы, навсегда покончить с Способность компании создавать и использовать закрытые рынки для такого использования сотовых телефонов.  Хотя потребители охотно приобрели сотовый телефон службы планы, которые включали весьма высокими издержками для загрузки программного обеспечения, изображений и музыки, это из-за ограниченного числа сотовых телефонов службы вариантов. 

Экономическая динамика, что позволило некоторым компаниям расти доминировать на рынке не должно быть истолковано как косвенное сильное одобрение потребителей.  В компании начинают доминировать, а затем сделать его трудным или невозможным для конкурентов на рынок, доминирующее компании могут предложить продукты, которые сочетают высокое положительное значение (например, умение общаться с любого компьютера) с высоким отрицательное значение (например, высокие цены желательно на программное обеспечение, изображения и музыку, все из которых в ином случае были бы свободно доступны, поэтому услуга добавляет отрицательное значение).  Нет потребитель вынужден купить сотовый телефон, но нет никаких сомнений в том, что по сотовому телефону доминирующие услуг постепенно создаются условия, которые не могут рассматриваться в качестве «свободного рынка.»  Таким образом, сотовый телефон службы рынке была экономически «неэффективной и» была неоправданной нагрузки на потребителей. 

Хотелось бы надеяться, что требования о том, что сотовый телефон службы радиочастот быть доступны для конкурирующих услуг будет восстановить нормальные рыночные ценности для передачи данных, например о том, что сотовый телефон услуг вновь уменьшено до простого носителей данных (например, только предоставление полосы пропускания), а не информация или развлечения провайдеров ! 

Бизнес транспортировки данных должна быть отделена от бизнеса по продаже данных, иначе не будет стимула для данного транспортного бизнеса, чтобы заблокировать конкурентов от продажи данных через одни и те же данные транспортные канала. 

Видео игры консоль рынок страдает от той же проблемы.  Производители видео-игра аппаратные консоли в бизнес по созданию устройств, которые могут отображать видео-игр, но те же компании, также обладает исключительным контролем передачи программного обеспечения для этих игровых систем.  Таким образом, есть стимул для видео игры консоль производителей блокировать конкурентов от продажи программного обеспечения для игровых систем.  Если видео игры консоль производителю оборудования сосредоточена на проектировании и изготовлении оборудования, которое может быть продано на прибыль (а не на значительные потери, как и с X-Box и PlayStation и Nintendo игровых систем), а затем видеоигра рынок будет процветать, и Качество наилучшим видеоигр резко улучшится, а расходы видеоигр рухнет. 

2. Тема индекс

(1)
J2ME инструменты разработки
(2)
Простая программа J2ME
(3)
Комплексная программа J2ME
(4)
Sun «беспроводных материалов»
(5)
Предлагая программное обеспечение на Интернет-сайте
(6)
Загрузка программного обеспечения из интернет-сайта
(7)
Скачать сообщения об ошибках и сообщения об ошибках установки
(8)
Создание, предложение, и загрузка «мелодий»
(9)
Создание, предлагая, а при загрузке изображений
(10)
AT&T сотового телефона параметры конфигурации (в сети)
(11)
Ссылки на другие ресурсы сотовых телефонов
(12)
J2ME сравнению BREW

3. J2ME инструменты разработки

В этом разделе описывается, как загрузить развитие инструментов, которые могут быть использованы для составления J2ME исходный код в свой класс файлов для мобильных устройств.  Заметим, что Sun «J2ME Wireless Toolkit,» говорится в одном из последующих разделов этой статье, требует загрузки Java SDK, описанные в этом разделе. 

3.1 JDK 1.4 (или более поздней версии)

Это означает, что вам нужно обычных Java 2 SDK из Sun.  Я загрузил и используется версия 1.4 по следующей ссылке:
http://java.sun.com/j2se/1.4/download.html
Вот что загрузка страницы выглядит следующим образом:
java2sdk_download_page.jpg
Запустите программу установки.  Установка по умолчанию местоположение ( c:\j2sdk1.4.0_03 ) если вы не в состоянии решить проблемы, пути, которые могут возникнуть. 

3.2 Connected Limited Device Configuration (CLDC)

Я не буду делать вид, узнать, что это такое, но я просто загружают ее из Sun веб-сайт.
http://wwws.sun.com/software/communitysource/j2me/cldc/download.html
Вот что CLDC основной сети веб-страницы выглядит следующим образом:
cldc_download_page.jpg
Только 1.0.3 была доступна в то время я посетил.
Для того чтобы скачать это, мне необходимо зарегистрироваться в Sun веб-сайт.  Я создал следующие профили:
Username:        anon***anon
Password:        nospamplease
Favorite color:  blue
Full name:       Prof. Anon Nospamplease
Я загрузил файл:
j2me_cldc-1_0_3-fcs-src-b17-winunix-14_sep_2001.zip
Я unzipped в следующий каталог:
C:\j2me
Я переименовал «cldc-1_0_3-fcs» каталога просто:
cldc (например, полный путь c:\j2me\cldc)

3.3 Mobile Information Device Profile (MIDP)

Я не претендую на то, что знаю это тоже, но я просто загружают ее из Sun веб-сайт.
http://java.sun.com/products/midp/
Вот что MIDP основной сети веб-страницы выглядит следующим образом:
midp_download_page.jpg
Я загрузил файл:
j2me_midp-1_0_3-fcs-src-b26-win-19_sep_2001.zip
Я unzipped в следующий каталог:
C:\j2me
Я переименовал «midp-1_0_3-fcs» каталога просто:
midp (например, полный путь c:\j2me\midp)

3.4 Настройка инструментов

3.4.1 Создание путей

Добавьте следующие строки в ваш файл AUTOEXEC.BAT:
REM ---- Java Support ----
SET MIDP_HOME=C:\j2me\midp
SET PATH=%PATH%;c:\j2sdk1.4.0_03\BIN;
PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\j2sdk1.4.0_03\BIN;C:\j2me\midp\bin;%PATH%
Тогда сила этих переменных, которые будут загружаться, запустив пакетный файл:
cmd_prompt_autoexec_bat.jpg
c:\>  autoexec.bat
Вы также можете установить эти же переменные, используя переменную окружения Windows Control Panel.

Уведомление о том, что я решил уточнить четко каталогу пути к моей текущей версии Java 2 SDK.  Поэтому, если я обновления, то я должен изменить AUTOEXEC.BAT файла указать новые каталоги. 

3.4.2 Проверить Jave 2 SDK бинарники

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

Следующая команда начнет сотовый телефон устройство эмулятор: 
cmd_prompt_midp.jpg
c:\>  midp
Ниже показано изображение сотового телефона устройство эмулятор: 
java_midp_launch.jpg

4. Простая программа J2ME

4.1 Напиши Java код

Используя любой текстовый редактор, человек может ввести код, как, например, для этого HelloMIDlet.java исходный код файла:
file_image_hellomidlet_java.jpg
Вот код в текстовом формате:
// File: HelloMIDlet.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class  HelloMIDlet
extends       MIDlet
implements    CommandListener
{
    private Command exitCommand;
    private Display display;
    private TextBox t = null;

    public HelloMIDlet()
    {
        display = Display.getDisplay( this );
        exitCommand = new Command( "Exit", Command.EXIT, 2 );
        t = new TextBox
        (
            "Hello MIDlet",
            "Test string",
            256, 0
        );
        t.addCommand( exitCommand );
        t.setCommandListener( this );
    }

    public void startApp()
    {
        display.setCurrent( t );
    }

    public void pauseApp()
    {
    }

    public void destroyApp( boolean unconditional )
    {
    }

    public void commandAction( Command c, Displayable s )
    {
        if (c == exitCommand)
        {
            destroyApp( false );
            notifyDestroyed();
        }
    }
}

4.2 Обобщение *.java код *.class

cd  c:\HelloMIDlet
Внимание: следующие команды должны быть в одной строке, но было расширена до нескольких строк текста, только для ясности.
(Текущий каталог: C:\HelloMIDlet)
javac
    -target 1.1
    -d .\
    -bootclasspath c:\j2me\midp\classes
    HelloMIDlet.java
cmd_prompt_javac.jpg
Примечание: «-target 1.1» необходимо, чтобы избежать ошибок в будущем «preverify» этапе.  Видимо это-то делать с проблемой MIDP 1.0.3 поддержки в JDK 1.4. 

4.3 Preverify создавать новый файл *.class

cmd_prompt_preverify.jpg
(Текущий каталог: C:\HelloMIDlet)
preverify  -classpath  c:\j2me\midp\classes;.  HelloMIDlet
Это порождает новые *.class файл в новый каталог «output» (по умолчанию).

4.4 Тест нового *.class файл

cmd_prompt_midp_midlet.jpg
(Текущий каталог: C:\HelloMIDlet)
midp  -classpath  c:\j2me\midp\classes;.\output  HelloMIDlet
Это начинается эмулятор телефона, указав, что новые «output» каталог, который содержит некоторые необходимые *.class файлов.
Следующее изображение показывает ожидаемого результата.
java_midp_hellomidlet.jpg

4.5 Создайте новый текстовый файл, «manifest.mf», а также редактировать файла

«manifest.mf» файла необходимо для получения фактических сотового телефона толковать содержание *.jar файл.  Если надлежащего «manifest.mf» файл не включен в *.jar файл, а затем по сотовому телефону могут успешно *.jar скачать файл, но, возможно, не интерпретировать загруженный файл, возможно, отчетность ошибки, такие, как «Unsupported Content Type». 
Ниже приведен пример простого «manifest.mf» файл.
file_image_manifest_mf.jpg
Вот «manifest.mf» файл в формате обычного текста: 
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Отметим, что CLDC и MIDP версии указаны в этом файле.  Будьте очень осторожными и консервативными при редактировании различных областях, в этом файле.  Если вы получаете «File Corrupt» ошибки, попробуйте ликвидации всех областях, не указанных в данном примере.  Кроме того, положить поля в порядке, в каком они фигурируют в примере.  Кроме того, сократить стоимость каждой области как можно, и хранить символы только простые буквы, цифры, точки и тире.  В некоторых сотовых телефонов, и сотовые телефоны, может терпеть больше вариаций поля заказа и места содержания. 
Внимание: 

Когда «jar» программа используется для создания *.jar файл, и «manifest.mf» файл указан как файл манифеста, «jar» программа читает файл манифеста и, возможно, добавить больше полей, как он создает файл с именем «MANIFEST.MF» в *.jar выходного файла.  Поэтому, если «MANIFEST.MF» файл извлекается из *.jar файл, а затем по сравнению с первоначальным «manifest.mf» файл, указанный во время создания *.jar, два файла могут быть разные, с «MANIFEST.MF» файл, содержащий несколько полей, чем оригинальный файл «manifest.mf» . 

Не извлечения файла из «MANIFEST.MF» *.jar файл и попытаться сформировать новое *.jar файл, используя том, что файл манифеста.  Если у Вас получения «MANIFEST.MF» файл из *.jar файл, а затем быть уверены, что для ликвидации всех областях, за исключением указанных в пример «manifest.mf» файл с указанным выше. 
Примечание:

Иконки для программы, по всей видимости, не появляются на Motorola T720 телефона.  Вот почему я не описать мое мидлет с иконой.  Однако следующие показано, как установить значок программы в файл манифеста: 

MIDlet-1: My_Description, /icon.png, HelloMIDlet 

При разработке для сотовых телефонов, что делать отображения иконки для приложений, указать значок файла, и добавить значок графического файла себя *.jar файл, указав имя файла среди имен файлов файлов, которые будут добавлены к *.jar файл. 

4.6 Положить «manifest.mf» файл и *.class файл в файл *.jar

Следующая команда создает файл *.jar.  *.jar файл будет содержать указанных manifest.mf файл, и будет содержать *.class файлы в указанной директории.
cmd_prompt_jar.jpg
Текущая директория: C:\HelloMIDlet
jar  cfm  hi.jar  manifest.mf  -C .\output  HelloMIDlet.class
Комплекс гипотетический пример создания файла *.jar
Предположим, значок файла изображения (например, «icon.png») заключается в том, чтобы появляться в *.jar файл как «/icon.png».  (Примечание: Программа значки не отображаются на Motorola T720 сотовых телефонов, но они появляются в других видах сотовых телефонов, и они появляться в эмуляторам MIDP.) 

Предположим, есть каталог с именем «images» с файлами изображений (*.png формат).  Пусть этот каталог, и все изображения, содержащиеся в справочнике, должны быть доступны для Java программы относительной каталог /images (например, что образ «a.png» будут доступны с использованием путь «/images/a.png»). 

Пусть все *.class файлы подготовленные preverify команды приводятся в каталоге с именем «verified».  Например, проверить версию основной класс, «MyApp.class», будет «verified» папке, наряду с другими классами программа.  Все эти классы должны быть доступны в корневом каталоге файл *.jar. 

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

jar
    cfmv             [Create JAR, Specify JAR Name, Add manifest.mf, Verbose]
    MyApp.jar        [Name of output JAR file]
    manifest.mf      [The manifest.mf file]
    icon.png         [Optional icon, specified by JAD as "/icon.png"]
    images           [Directory to add to JAR as "/images"]
    -C .\verified .
В заключительной части команды трудно понять.  Она имеет следующие значения:  «Изменить текущий рабочий каталог .\verified, а затем поставить все *.class файлов, найденных в относительной каталог '.' (а именно *.class все файлы в текущей рабочей директории) в для *.jar файл.»  Из каталога был изменен до указывая путь к классам ввести в *.jar файл, местные пути не будет появляться в относительном пути, когда файлы помещаются в *.jar файл. 

Например, предположим, проверить классов в следующем каталоге: 

C:\MyApp\verified 

Предположим Есть класс файлы, такие как: 

C:\MyApp\verified\w.class 

Тогда «-C .\verified .»  указав в команду, чтобы создать *.jar файл, начиная с текущего каталога «C:\MyApp», приведет к «w.class» создаются в корневом каталоге файл *.jar.  </ E>

Предупреждение: Если опция «-C» указан, оно изменяет текущий рабочий каталог на тот момент обработки общую последовательность команд параметров jar команды.  Таким образом, jar команда может жаловаться на то, что он не может найти другие файлы, упомянутые в параметрах командной за «-C» вариант.  Если это произойдет, просто переместите «-C .\verified .»  быть окончательным параметры общее командование. 

Ниже приводятся данные подробного вывода jar команды. 
added manifest
adding: icon.png(in = 449) (out= 454)(deflated -1%)
adding: images/(in = 0) (out= 0)(stored 0%)
adding: images/a.png(in = 2463) (out= 2223)(deflated 9%)
adding: images/b.png(in = 1322) (out= 579)(deflated 56%)
adding: images/c.png(in = 3433) (out= 2874)(deflated 16%)
adding: images/d.png(in = 1524) (out= 801)(deflated 47%)
adding: w.class(in = 2570) (out= 1356)(deflated 47%)
adding: MyApplication.class(in = 4714) (out= 2169)(deflated 53%)
adding: x.class(in = 3239) (out= 1429)(deflated 55%)
adding: y.class(in = 14205) (out= 6481)(deflated 54%)
adding: z.class(in = 9448) (out= 5135)(deflated 45%)

4.7 Создавать и редактировать новые *.jad файл

*.jad файла необходимо, чтобы мобильный телефон можно описать компьютерные программы по лицу, прежде чем человек принимает решение, чтобы загрузить программу.  *.jad файле также содержатся некоторые окольные пути из *.jar себя. 
file_image_hi_jad.jpg
Например *.jad файл, описывающий *.jar файл
Вот пример hi.jad файлов в текстовом формате:
MIDlet-1: My_Description,, HelloMIDlet
MIDlet-Jar-Size: 1283
MIDlet-Jar-URL: http://www.colinfahey.com/hi.jar
MIDlet-Name: My_Midlet_Suite
MIDlet-Vendor: Colin Fahey, Inc.
MIDlet-Version: 1.0
Есть программы, которые могут генерировать *.jad файл, который упрощает обновление «MIDlet-Jar-Size:» поле каждый раз *.jar файл изменяется (и его размер изменения).  При поиске в Интернете вы найдете полезную J2ME программ. 

Если размер области не уточняется точное байт общей сложности *.jar файл, то следующая ошибка может появляться после успешной загрузки на мобильный телефон: «Download Failed» (скачать не получилось). 

Для Motorola T720 сотовых телефонов, следующее сообщение об ошибке может быть использовано для inidcate недействительными поля в файле *.jad, или, возможно, недействительными полей в сгенерированный файл в MANIFEST.MF *.jar файла: «Failed: File Corrupt» (Ошибка: файл поврежден). 
Примечание: Если *.jar файл находится в той же директории, что и соответствующие *.jad файл на веб-сервере, а затем *.jad файл можно просто указать имя файла *.jar файла, без указания полного URL, как показано в следующем примере: 

MIDlet-Jar-URL: hi.jar 

При загрузке файлов из Интернета Apache веб-сервер для Motorola T720 сотовых телефонов, это приемлемо, чтобы не включать полный URL.  Тем не менее, при загрузке этих файлов из Интернета Yahoo!  веб-сервер для Motorola T720 сотовых телефонов, попытка загрузить не удастся, если не полное URL путь к *.jar файла указывается в *.jad файла, как показано в следующем примере: 

MIDlet-Jar-URL: http://www.colinfahey.com/hi.jar 

Я не знаю причину этой проблемы, и я знаю, что эта проблема не затрагивает другие сотовые телефоны (или сотовый телефон услуг).  После указать полное URL для *.jar файл в файл *.jad явно неудобно, так как перемещение файлов в различные места на сервере, потребуется изменение информации во всех *.jad файлов.  Однако, с указанием полного URL может сделать *.jad более надежной для некоторых сотовых телефонов и некоторых сотовых телефонных услуг. 

4.8 Тест *.jar файл и *.jad файл, выполнив программу

Выполняет следующие сорта в *.jar файл, описанные *.jad файл. 
cmd_prompt_midp_jar_jad.jpg
(Текущий каталог: C:\HelloMIDlet)
midp  -classpath c:\j2me\midp\classes;.\hi.jar  -descriptor hi.jad

4.9 Документы J2ME, MIDP, CLDC развития

Многое из того, что я изложил здесь можно найти на многих других интернет-сайтах.  Тем не менее, я исправлены некоторые ошибки найти на других сайтах в Интернете, и добавил недостающие детали, и представил полную опыта кто-то пытается сделать этот материал.  Здесь очень информативным ссылкам, которые помогли мне начать: 
http://wireless.java.sun.com/midp/articles/getstart
http://wireless.java.sun.com/midp/articles/setup

5. Комплексная программа J2ME

5.1 Введение

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

Мой друг Sam Robertson написал интересную J2ME программа, которая учит играть лицом к карточной игре «Blackjack» (называемая также «21»).  Игрок представлен с «карты дилерскую,» и игрока пара карт, и игрок должен решить, что делать: «остаться, ударил дважды вниз,» или «раскол.» 

Эта программа имеет шесть исходный код файлов.  Программа реагирует на ввод пользователя, и не простой рисунок и текст обновляется. 
sbj_screen_on_phone.jpg

5.2 Исходный код

Нажмите на ссылку, чтобы получить исходный код, и *.jad файл, «manifest.mf» файл, а командный файл, все в один удобный ZIP файл.
sbj.zip
Исходный код, содержащийся в файле ZIP
6090 байт
MD5: bf3922035b7a4eef24e107d03b7524c9
Выдержка для произвольного каталога, но если Вы извлечете для «c:\» под Windows, следующий пример обсуждения будут еще ближе к вашей реальной ситуации.
sbj_directory_files.jpg
Извлечение sbj.zip к «c:\» создает каталог «c:\sbj»

5.3 Манифест файл

Файл: «manifest.mf»:
MIDlet-1: My_Description,, SBJ_MidletT
MIDlet-Name: SBJ_MidletT
MIDlet-Vendor: Sam Robertson
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0

5.4 Пакетный файл для создания программы

Следующий командный файл является приблизительным, но он служит иллюстрацией того, как вы могли бы начать с написания собственного пакетный файл для создания ваших J2ME программы.  Этот пример пакетного файла делает следующее:
(1) удалить каталог, содержащий старые *.class файлов; 
(2) удалить каталог, содержащий старые проверить *.class файлов; 
(3) Сделать «классов» в выходной каталог; 
(4) обобщить все *.java источников в *.class файлы, при выходе собираемся «классы» каталог. 
(5) Сделать «проверить» выходной каталог; 
(6) Preverify все занятия в «классах» каталоге, и положил проверить классы в каталоге «проверяются.» 
(7) Создать *.jar файл, и добавить mainfest файл, и все классы в каталоге «проверяются;» 
*(8) испытаний программы через preverified классов напрямую; 
*(9) испытаний программы через *.jar и *.jad файлов; 

(*...  Эти шаги являются инвалидами (в комментариях), в моем пакетного файла.) 
sbj_build_sbj_bat_file.jpg
«build_sbj.bat» пакетный файл для построения программы
Вот тот же файл («build_sbj.bat») в текстовом формате:
rmdir /S /Q classes
rmdir /S /Q verified
del /F /Q  *.jar

mkdir classes

javac  -g:none  -target 1.1  -d .\classes  -bootclasspath c:\j2me\midp\classes  *.java

mkdir verified

preverify  -classpath c:\j2me\midp\classes;.\classes  -d .\verified  .\classes

jar  cvfm sbj. jar manifest.mf  -C  .\verified  .

REM  midp  -classpath c:\j2me\midp\classes;.\verified  SBJ_MidletT
REM  midp  -classpath c:\j2me\midp\classes;.\sbj.jar  -descriptor sbj.jad
REM  Finished

5.5 Здание из командной строки

Вот результат запуска «build_sbj.bat» пакетного файла в командной строке:
sbj_build_command_prompt.jpg
Выполнение «build_sbj.bat» пакетного файла
Заметим, что предупреждающие сообщения для «rmdir» и «del» операции просто указать, что ничто не может удалить. 

Вы можете увидеть новые каталоги (например, «classes» и «verified») и новой *.jar файл, который привел запуск пакетного файла:
sbj_new_files_after_build.jpg
Исходный код файлов и новых Generated файл

5.6 *.jad файл

Чтобы развернуть sbj.jar файл, мы должны создавать и редактировать файл sbj.jad иметь правильный размер *.jar в соответствующем поле:
Файл: sbj.jad
MIDlet-1: SBJ_MidletT, , SBJ_MidletT
MIDlet-Jar-Size: 7257
MIDlet-Jar-URL: sbj.jar
MIDlet-Name: Sam Blackjack Trainer
MIDlet-Vendor: Sam Robertson
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Лицо, возможно, придется добавить к полной URL *.jar файл, если файл *.jad делается на Интернет-сайте, - но я обнаружил (в эксперименте), что я смог избежать упоминания полного URL (то есть, я только определенные *.jar имя файла само по себе).  Однако, в результате чего в полном URL, но я хотел бы сообщить вам, что я наблюдал.

5.7 Резюме

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

Пожалуйста, см.  следующий раздел, касающийся использования Sun Wireless Toolkit, который позволяет создавать приложения гораздо проще. 

6. Sun «Wireless Toolkit (version 1.0.4_01)»

6.1 Введение

Sun предоставляет удобную среду разработки для создания и тары J2ME программы: «Java 2 Platform Micro Edition (J2ME) Wireless Toolkit (version 1.0.4_01)». 

(Внимание: Вы должны скачать Java 2 SDK 1.4 как описано в предыдущем разделе, чтобы использовать этот инструментарий.  Сделайте это сейчас, если у вас еще нет этой версии Java 2 SDK.) 

Перейти к следующему Интернет-сайт, чтобы скачать инструментарий: 

http://java.sun.com/products/j2mewtoolkit/ 
Внимание!!!
 

НЕ нажимайте на ссылку «2.0 Beta 1 English» (в настоящее время Top загрузки опция), если вы делаете Motorola T720 развития, - поскольку эта версия имеет некоторые MIDP-2.0 вещи, и получаю примерно это может быть головная боль. 
j2me_wireless_toolkit_2_0_download_page.jpg
Не скачать эту версию!  («2.0 Beta 1 English»)
Я попробовал этот вариант, и я в конечном итоге получили код для компиляции с множеством настроек беспорядочный изменений, но после всех усилий я получил безопасности исключением, когда я пытался запустить.  Не беспокойтесь! 
Скачать «1.0.4_01 English» версия.  Вот что загрузка страницы выглядит следующим образом: 
j2me_wireless_toolkit_1_0_4_01_download_page.jpg
Sun J2ME Wireless Toolkit (version 1.0.4_01) загрузить страницу
j2me_wireless_toolkit_1_0_4_01_download_page2.jpg
Sun J2ME Wireless Toolkit (version 1.0.4_01) FTP сайте список
Это позволит загрузить следующий файл: «j2me_wireless_toolkit-1_0_4_01-bin-win.exe» 
Запустить эту программу для установки на Вашей системе.

6.2 J2ME Wireless Toolkit: запуск панели

После того как инструментарий установлена, вы можете запустить его из «Start» (СНВ) в меню системы:
j2me_wireless_toolkit_1_0_4_ktoolbar.jpg
Запуск панели инструментов программы
Вы можете также получить доступ к документации с помощью MIDP-1.0 «Documentation» пункта, в этом Start (СНВ) в меню.
j2me_wireless_toolkit_2_0_wtk20_docs_api_index_html.jpg
J2ME Wireless Toolkit (version 1.0.4_01) документации

6.3 J2ME Wireless Toolkit: создать проект, и построить

j2me_wireless_toolkit_1_4_ktoolbar_window.jpg
Панель готова.  Нажмите «New Project...»  для создания нового проекта.
j2me_wireless_toolkit_1_4_ktoolbar_new_project.jpg
New Project: Введите название проекта (становится JAR имя и название нового проекта, каталог), и типа в MIDlet имя класса (класс, полученных в результате MIDlet, по сути основной класс вашего приложения). 
j2me_wireless_toolkit_1_4_ktoolbar_project_created.jpg
Панель инструментов: проект создается.  Отметим, что консоль говорит вам, куда поставить вашу *.java исходные файлы и т.д.  (например, «c:\WTK104\apps\sbj\src» и т.д.) 
j2me_wireless_toolkit_1_4_ktoolbar_project_settings.jpg
Нажмите на «Settings...»  на панели инструментов, чтобы получить этот проект настроек меню. 
Игнорирование «MIDlet-Jar-Size» области (при стоимости «100» байт) в настоящее время.  Мы будем и в конечном итоге вызвать правильное значение, чтобы установить. 
j2me_wireless_toolkit_1_4_ktoolbar_project_midlet_settings.jpg
Перейдите на вкладку MIDlets этого проекта диалог настроек.
Нажмите на только строки в таблице («MIDlet-1») для выделения и выберите его.  Затем нажмите кнопку «Edit». 
j2me_wireless_toolkit_1_4_ktoolbar_project_no_icon.jpg
Очистить «Icon» поле, если вы не имеете *.png файл поставить в ваш *.jar файл. 
Выполните следующие действия: 

(1) Project --> Clean: удаляет все файлы *.class;
(2) Build : Строит все *.class файлы и preverifies;
(3) Project --> Package --> Create Package : производит *.jar и *.jad
j2me_wireless_toolkit_1_4_ktoolbar_clean_build_create_package.jpg
В результате строительства *.jar и *.jad
Когда вы делаете эти три шага, в результате *.jar и *.jad сразу готова к работе в местных эмулятор, либо для немедленного размещения на своем интернет-сайте для других сетях «над воздушной» (OTA).  *.jar размер поля в файле *.jad будет правильным.  Не забудьте сделать шаг (3) каждый раз, когда вы восстановить! 

Теперь вы можете проверить нажать «Run» (запуска) кнопки. 
j2me_wireless_toolkit_1_4_ktoolbar_project_launch.jpg
j2me_wireless_toolkit_1_4_ktoolbar_project_running.jpg
Стремясь «Run» для этого проекта гласит *.jad в эмуляторе.  Вы можете выбрать конкретный MIDlet для старта (как правило, только один). 
Просто скопируйте *.jar и *.jad файлы из указанного места (по сообщению панели консоли окна во время сборки проекта), таких как:
(Из окна консоли:)
Wrote c:\WTK104\apps\sbj\bin\sbj.jar
Wrote c:\WTK104\apps\sbj\bin\sbj.jad
Положить эти файлы прямо на ваш сайт в Интернете без изменений, и оно должно работать.  Вот что я видел на моего сотового телефона после загрузки этого приложения составлено «свыше воздуха» (OTA)
sbj_screen_on_phone.jpg
Sam Robertson's Blackjack Trainer (sbj.jar) исполнителям по моему сотовому телефону

7. Предлагая программное обеспечение на Интернет-сайте

7.1 Убедитесь, что веб-сервер определяет MIME типов для *.jar файлы и файлы *.jad

Если у вас есть Apache Интернете веб-сервер, вам нужно создать файл с именем «.htaccess» в рамках Вашего веб-сайта корневой каталог.  «.htaccess» файла позволяет переопределить Apache конфигурации, такие как добавление или главной файл MIME типов.  Вы должны добавить уточнить MIME типов, соответствующих *.jar файлы и *.jad файлов, как показано в следующих текстовых файлов: 
htaccess_image.jpg
Мой обычай «.htaccess» файл для Apache Интернете веб-сервер.  Примечание: Я назвал этот файл «.htaccess.txt» просто сделать файл легко изменить при использовании Windows операционной системы.  Имя файла должно быть изменено на «.htaccess» до файла могут быть использованы с Apache Интернете веб-сервер. 
Вот моя проста .htaccess файл в формате обычного текста:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
Видимо, создания или изменения этого файла приводит к немедленному изменению в Apache поведения сервера.  Думаю Apache сервер проверяет изменения даты и времени «.htaccess» файла при каждом новом входящем сделки, и сервер Перезагружает, что файл, если изменение даты и времени изменилось. 

Если у Вас есть различные виды Интернет веб-сервер, вы должны определить, каким образом указывать MIME типов, и вы должны обеспечить, чтобы *.jar файлы и файлы *.jad присваиваются соответствующие MIME типов. 

Вы будете знать, если MIME виды не были созданы, если сотовый телефон отказывается загрузить файл *.jad и сообщает следующее сообщение об ошибке: 

«406: Not Acceptable» 

7.2 При желании предоставить ссылки на файл *.jad в HTML или WML документы

Motorola T720 J2ME сотовый телефон с AT&T служба имеет возможность скачать файл *.jad напрямую, набрав URL из *.jad файл в свой сотовый телефон.  Это может работать для других J2ME сотовых телефонов, с другой сотовый телефон услуг. 

Тем не менее, было бы более удобно для людей, чтобы загрузить файл *.jad, выбрав ссылку в HTML документе или в WML документа.  (Примечание: WML в настоящее время устарели.  Большинстве сотовых телефонов теперь могут интерпретировать HTML.) 
file_image_hi_html.jpg
Простая HTML документе со ссылкой на файл *.jad
file_image_hi_wml.jpg
Простая WML (WAP) страницы со ссылкой на файл *.jad  (Примечание: WML в настоящее время устарели.  Большинстве сотовых телефонов теперь могут интерпретировать HTML.) 

8. Загрузка программного обеспечения из интернет-сайта

Следующие картинки показывают точную последовательность действий я сделал, чтобы загрузить и выполнить MIDlet разработаны и развернуты, как описано в предыдущих разделах выше.  Эти изображения фотографии на экране своего сотового телефона. 
t720_screens_download_program.jpg
(1) Главный экран: Когда вы открываете телефон, вы увидите главное меню.  Пресс-центр кнопку, чтобы перейти в главное меню. 
(2) Main Menu: Переход к пункту «WebAccess». 
(3) WebAccess: Переход к пункту «Go To URL». 
(4) Enter URL: Введите URL из *.jad файл (или HTML документ, или WML документа). 
(5) Details; Эта информация была разбираться с *.jad файл.  Пресс DOWNLD скачать *.jar файл. 
(6) Download Complete; Подождите, это сообщение исчезнет; 
(