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 "безжична Toolkit"
(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
I 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
I 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 среда променлив контролния панел.

Забележете, че избрах да се посочи изрично директория пътеки към моята текущата версия на 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 в нов subdirectory нарича "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 с иконата.  Въпреки това, следните показва как да зададете иконката на програмата в рамките на манифеста файл: 

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".  (Забележка: Program иконите не появява на 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 съответния файл в Интернет Web сървър, тогава *.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
Източник код файлове и нов файл, генериран

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, както е описано в по-ранна секция, за да използвате тази Toolkit.  Направете това сега, ако още нямате тази версия на Java 2 SDK.) 

Отидете на следния интернет сайт, за да изтеглите Toolkit: 

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

Не кликвайте върху връзката "2.0 Beta 1 English" (в момента в началото на страницата даунлоуд опция), ако сте прави 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: Стартиране Toolbar

След Toolkit е инсталирана, можете да го стартирате от "Start" (Start) меню система:
j2me_wireless_toolkit_1_0_4_ktoolbar.jpg
Стартиране на лентата с инструменти на програмата
Можете да получите достъп и до MIDP-1.0 документация чрез "Documentation" елемент в тази Start (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
Toolbar: Проект създаден.  Забележете, че на конзолата ви казва къде да сложиш *.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 : Builds *.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" (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 Server поведение.  Предполагам че Apache Server проверки промяна датата и часът на ".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 разработени и разгърнати, както е описано в предходните раздели горе.  Тези образи са снимки на екрана на моя моби