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 सॉफ्टवेयर मंच की विशेषता "जैसे सेलुलर" फोन, हमेशा के लिए कंपनियों की क्षमता पैदा करने के लिए और शोषण सेलुलर फोन के इस तरह के उपयोगों के लिए बंद बाजारों खत्म हो जाएगा.  हालांकि उपभोक्ताओं इच्छा है कि सॉफ्टवेयर, छवियों को डाउनलोड करने के लिए बहुत उच्च लागत, और संगीत शामिल सेलुलर फोन सेवा योजनाओं खरीदी, इस सेलुलर फोन सेवा के विकल्प की सीमित संख्या के कारण उपलब्ध है. 

यह है कि बाजार पर हावी करने के लिए विकसित करने के लिए उपभोक्ताओं द्वारा अंतर्निहित मजबूत अनुमोदन के रूप में व्याख्या नहीं की जानी चाहिए कुछ कंपनियों सक्षम है यह आर्थिक गतिशीलता.  कम्पनियों के रूप में हावी करने के लिए, और फिर शुरू मुश्किल या असंभव के लिए प्रतियोगियों को बाजार में प्रवेश करने के लिए बना है, हावी कंपनियों के उत्पादों है कि उच्च नकारात्मक मूल्य के साथ (जैसे, की क्षमता कहीं से भी संवाद करने के लिए) उच्च सकारात्मक मूल्य गठबंधन की पेशकश कर सकते हैं (, उच्च जैसे मूल्यों वांछनीय सॉफ्टवेयर, छवियाँ, के लिए और संगीत, जिनमें से सब अन्यथा आज़ादी से उपलब्ध हो जाएगा; इस प्रकार, इस सेवा) नकारात्मक मूल्य कहते हैं.  कोई उपभोक्ता एक मोबाइल फोन खरीद करने के लिए, पर मजबूर कर रहा है इसमें कोई शक नहीं है कि प्रमुख सेलुलर फोन सेवा प्रदाताओं धीरे धीरे कि एक मुक्त बाजार पर विचार नहीं किया जा सकता स्थितियां "पैदा की है है."  इसलिए, सेलुलर फोन सेवा बाजार की गई आर्थिक "और" अक्षम है उपभोक्ताओं पर एक अनुचित बोझ कर दिया गया है. 

उम्मीद है, आवश्यकताओं कि सेलुलर फोन सेवा रेडियो आवृत्ति होड़ सेवाओं के लिए ऐसी है कि सेलुलर फोन सेवा प्रदाताओं फिर से डेटा का मात्र वाहक करने के लिए (यानी, केवल) जानकारी या मनोरंजन के बजाय प्रदाताओं बैंडविड्थ उपलब्ध कराने कम कर रहे हैं आंकड़ा अंतरण, सामान्य बाजार मूल्यों को बहाल करेंगे उपलब्ध हो ! 

डेटा परिवहन का व्यवसाय डेटा को बेचने के व्यवसाय से, अन्यथा वहाँ एक ही डेटा परिवहन चैनल के माध्यम से डेटा की बिक्री से प्रतियोगियों ब्लॉक करने के लिए डेटा परिवहन व्यवसाय के लिए एक प्रोत्साहन दिया जाएगा अलग होना चाहिए. 

वीडियो गेम बाजार दिलासा एक ही समस्या से गुज़र रहे हैं.  वीडियो गेम के निर्माताओं को हार्डवेयर दिलासा है कि वीडियो गेम प्रदर्शित कर सकते हैं devices बनाने के व्यवसाय में हैं, लेकिन वे एक ही कंपनियों को भी उन वीडियो गेम के लिए सॉफ्टवेयर के हस्तांतरण के अनन्य नियंत्रण है consoles.  इसलिए, वहाँ के वीडियो गेम के लिए निर्माताओं के वीडियो गेम के लिए सॉफ्टवेयर की बिक्री से प्रतियोगियों ब्लॉक करने के लिए एक प्रोत्साहन दिलासा है consoles.  अगर एक वीडियो गेम और कहा कि एक लाभ (के बदले में एक महत्वपूर्ण नुकसान पर बेचा जा सकता है विनिर्माण हार्डवेयर डिजाइन पर केंद्रित है, X-Box और PlayStation और Nintendo वीडियो गेम consoles), फिर वीडियो गेम बाजार के रूप में साथ कामयाब होना होगा, और हार्डवेयर के निर्माता को दिलासा सबसे अच्छा वीडियो गेम की गुणवत्ता में नाटकीय रूप से, और वीडियो गेम की कीमत गिर जाएगा सुधार होगा. 

2. विषय सूचकांक

(1)
J2ME विकास उपकरण
(2)
सरल J2ME कार्यक्रम
(3)
जटिल J2ME कार्यक्रम
(4)
Sun "वायरलेस Toolkit"
(5)
एक इंटरनेट साइट पर सॉफ्टवेयर देने
(6)
एक इंटरनेट साइट से सॉफ्टवेयर डाउनलोड
(7)
डाउनलोड त्रुटि संदेश और स्थापना त्रुटि संदेश
(8)
बनाने, भेंट, और डाउनलोड करने "की अंगूठी टन"
(9)
बनाने, भेंट, और डाउनलोड छवियाँ
(10)
AT&T सेलुलर फोन configuration सेटिंग्स नेटवर्क (के लिए)
(11)
कड़ियाँ अन्य सेलुलर फोन संसाधनों के लिए
(12)
J2ME बनाम BREW

3. J2ME विकास उपकरण

इस खंड का वर्णन कैसे है कि क्लास में फ़ाइलें मोबाइल उपकरणों के लिए उपयुक्त करने के लिए J2ME स्रोत कोड संकलन करने के लिए इस्तेमाल किया जा सकता डाउनलोड विकास उपकरण करने के लिए.  कि Sun J2ME "Wireless Toolkit, इस अनुच्छेद के" बाद के एक भाग में चर्चा की है, Java SDK इस खंड में वर्णित डाउनलोड करने की आवश्यकता होती है ध्यान दें. 

3.1 JDK 1.4 (या बाद में)

यह आपको Sun से परंपरागत Java 2 SDK की जरूरत का मतलब है.  मैं डाउनलोड और निम्नलिखित कड़ी द्वारा संस्करण 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 पर्यावरण का उपयोग करके स्थापित कर सकते हैं.

नोटिस मैं Java 2 SDK के मेरे वर्तमान संस्करण में स्पष्ट निर्देशिका पथ निर्दिष्ट करने के लिए कि चुना है.  इसलिए, अगर मैं upgrade, तो मैं नए निर्देशिकाओं को निर्दिष्ट करने के लिए AUTOEXEC.BAT फ़ाइल को संशोधित करना चाहिए. 

3.4.2 इस Jave 2 SDK binaries की जाँच करें

एक बार ऊपर की सेटिंग्स लागू हो, तुम कमान से Java उपकरण कार्यक्रमों को चलाने के लिए इस उपकरण के कार्यक्रमों को पूरा पथ निर्दिष्ट बिना prompt सक्षम होना चाहिए. 

निम्न कमांड सेल्युलर फ़ोन डिवाइस emulator शुरू करेंगे: 
cmd_prompt_midp.jpg
c:\>  midp
निम्नलिखित छवि को सेलुलर फोन डिवाइस emulator दिखाता है: 
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 *.class करने के लिए संकलित *.java कोड

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 से बचने के लिए "आवश्यक है."  जाहिरा तौर पर इस JDK 1.4 में MIDP 1.0.3 समर्थन के साथ एक समस्या से कुछ संबंध है. 

4.3 Preverify एक नया *.class फाइल उत्पन्न करने के लिए

cmd_prompt_preverify.jpg
(वर्तमान निर्देशिका: C:\HelloMIDlet)
preverify  -classpath  c:\j2me\midp\classes;.  HelloMIDlet
यह एक नया subdirectory "output" डिफ़ॉल्ट () के द्वारा बुलाया में एक नया *.class फाइल उत्पन्न करता.

4.4 टेस्ट नए *.class फ़ाइल

cmd_prompt_midp_midlet.jpg
(वर्तमान निर्देशिका: C:\HelloMIDlet)
midp  -classpath  c:\j2me\midp\classes;.\output  HelloMIDlet
यह, कि नए "output" निर्देशिका कुछ आवश्यक *.class फ़ाइलों के contains संकेत फोन emulator शुरू होता है.
निम्नलिखित छवि को उम्मीद परिणाम प्रदर्शित करता है.
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" कार्यक्रम और मैनिफ़ेस्ट फ़ाइल पढ़ता के रूप में यह उत्पादन में फ़ाइल *.jar के भीतर एक फ़ाइल "MANIFEST.MF" बुलाया बनाता है और अधिक क्षेत्रों को जोड़ने सकता है.  इसलिए, अगर "MANIFEST.MF" फ़ाइल एक *.jar फ़ाइल से, और निकाला जाता है तो मूल "manifest.mf" के "MANIFEST.MF" के साथ *.jar, ने दो फ़ाइलों को अलग अलग हो सकती है, के निर्माण के दौरान मूल "manifest.mf" फ़ाइल से ज्यादा क्षेत्रों में कई युक्त फ़ाइल निर्दिष्ट फ़ाइल के साथ तुलना है . 

एक *.jar फ़ाइल और एक नया प्रयास है कि मैनिफ़ेस्ट फ़ाइल का उपयोग कर फ़ाइल *.jar रूप से एक "MANIFEST.MF" फ़ाइल निकालने मत करो.  यदि आप, तो फिर उन के उदाहरण में दिखाया गया के लिए छोड़कर सभी क्षेत्रों को समाप्त करने के लिए निश्चित होना एक *.jar फ़ाइल से एक "MANIFEST.MF" फ़ाइल निकालने के ऊपर दिखाए फ़ाइल "manifest.mf". 
नोट:

जाहिरा तौर पर इस Motorola T720 फोन पर दिखाई नहीं है कार्यक्रमों के लिए icons.  इस वजह से मैं एक आइकन के साथ मेरी midlet वर्णन नहीं किया है.  हालांकि, निम्नलिखित कि कैसे इस कार्यक्रम के लिए मैनिफ़ेस्ट फ़ाइल के भीतर एक चिह्न सेट करने के लिए दिखाता है: 

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

जब कि अनुप्रयोगों के लिए प्रदर्शन icons है सेलुलर फोन, इस आइकन फ़ाइल नाम निर्दिष्ट करने के लिए, विकासशील और फ़ाइलों का फ़ाइल नाम के बीच में फ़ाइल नाम निर्दिष्ट द्वारा आइकन छवि को *.jar फ़ाइल करने के लिए स्वयं फ़ाइल जोड़ने के *.jar फ़ाइल में शामिल किया जाना है. 

4.6 इस "manifest.mf" फ़ाइल और *.class में एक *.jar फ़ाइल के लिए फ़ाइल रखो

निम्न कमांड एक *.jar फ़ाइल बनाता है.  इस *.jar फ़ाइल है, और निर्दिष्ट manifest.mf फ़ाइल शामिल करेगा *.class शामिल होंगे निर्दिष्ट निर्देशिका में पाया files.
cmd_prompt_jar.jpg
वर्तमान निर्देशिका: C:\HelloMIDlet
jar  cfm  hi.jar  manifest.mf  -C .\output  HelloMIDlet.class
एक *.jar फ़ाइल बनाने के परिसर काल्पनिक उदाहरण
एक आइकन छवि फ़ाइल (जैसे, "icon.png") तो "/icon.png" के रूप में एक *.jar फ़ाइल में प्रदर्शित करने के लिए है.  (नोट: कार्यक्रम icons के Motorola T720 सेलुलर फोन पर है, लेकिन दिखाई नहीं है अन्य प्रकार के सेलुलर फोन पर प्रदर्शित होते हैं, और MIDP emulator में प्रदर्शित होते हैं.) 

लगता है वहाँ एक निर्देशिका "images" छवि फ़ाइलें (*.png प्रारूप) के साथ नाम पर रखा गया है.  , इस निर्देशिका तो और सभी छवियों निर्देशिका में शामिल की है, Java कार्यक्रम के लिए रिश्तेदार निर्देशिका /images द्वारा सुलभ होनी चाहिए (जो एक छवि "a.png" रास्ता "/images/a.png" का उपयोग कर पहुँच जाएगा) ऐसी. 

सभी *.class की तो इस preverify कमान द्वारा एक निर्देशिका "verified" नाम में निहित हैं उत्पादन files.  उदाहरण के लिए, मुख्य श्रेणी के सत्यापित संस्करण, "MyApp.class" है, "verified" फ़ोल्डर में किया जाएगा, साथ इस कार्यक्रम के अन्य वर्गों के साथ.  इन सभी वर्गों के हैं *.jar फ़ाइल के रूट निर्देशिका में पहुँच जाएगा. 

निम्न कमांड यह है कि विभिन्न लक्ष्यों को पिछले पैराग्राफ में विनिर्दिष्ट प्राप्त एक *.jar फ़ाइल बनाने जाएगा.  चेतावनी: कमांड स्पष्टता के लिए केवल पाठ की कई लाइनों यहाँ करने के लिए विस्तारित किया गया है.  जब एक आदेश में prompt कमान में प्रवेश, कमांड लाइन टूट शामिल नहीं करना चाहिए, अन्यथा कमांड दुभाषिया कई स्वतंत्र आज्ञाओं के रूप में दर्ज पाठ व्याख्या करेगा. 

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 फ़ाइल पाया files."  क्योंकि इस निर्देशिका की *.jar फाइल में डाल करने के लिए कक्षाओं का पथ निर्दिष्ट करने से पहले बदल दिया गया था, स्थानीय पथ के रिश्तेदार पथ में जब फ़ाइलों में *.jar फ़ाइल के लिए रखे हैं दिखाई नहीं देंगे. 

उदाहरण के लिए, सत्यापित वर्गों लगता निम्नलिखित निर्देशिका में हैं: 

C:\MyApp\verified 

वहाँ वर्ग फाइल में निम्नलिखित जैसे हैं तो: 

C:\MyApp\verified\w.class 

फिर कमान में *.jar फ़ाइल बनाने के लिए, "C:\MyApp" के एक मौजूदा निर्देशिका से शुरू, "w.class" के *.jar फ़ाइल के रूट निर्देशिका में रखा जा रहा परिणाम होगा "-C .\verified ."  निर्दिष्ट.  </ ई>

जब "-C" विकल्प निर्दिष्ट किया जाता है चेतावनी:, यह jar कमान करने के लिए कमान मानकों के समग्र अनुक्रम प्रसंस्करण के उस बिंदु पर वर्तमान कार्य निर्देशिका परिवर्तन.  इसलिए, jar आदेश है कि यह अन्य फ़ाइलें कमान मानकों में "-C" विकल्प से परे का उल्लेख नहीं मिल शिकायत हो सकती है.  अगर ऐसा होता है, बस समग्र कमान के अंतिम पैरामीटरों की जाने वाली "-C .\verified ."  हिलना. 

निम्नलिखित की jar कमान के verbose आउटपुट दिखाता है. 
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 programs मिलेगा इंटरनेट खोज. 

अगर आकार क्षेत्र है, तो निम्न त्रुटि एक सेलुलर फोन करने के लिए एक सफल डाउनलोड करने के बाद दिखाई दे सकता है: "Download Failed" (डाउनलोड विफल) के *.jar फ़ाइल के सटीक बाइट कुल निर्दिष्ट नहीं है. 

इस Motorola T720 सेलुलर फोन के लिए, निम्नलिखित त्रुटि संदेश उत्पन्न ने *.jar फ़ाइल के भीतर फ़ाइल MANIFEST.MF: "Failed: File Corrupt" में *.jad फ़ाइल, या संभवत: अवैध क्षेत्रों में अवैध खेतों inidcate करने के लिए (विफल: उपयोग किया जा सकता है भ्रष्ट) file. 
नोट: यदि *.jar फ़ाइल एक इंटरनेट वेब सर्वर पर इसी *.jad फ़ाइल के रूप में एक ही निर्देशिका में है, तो *.jad फ़ाइल बस, एक पूर्ण URL निर्दिष्ट किए बिना, निम्नलिखित उदाहरण के रूप में *.jar फ़ाइल का फ़ाइल नाम इंगित कर सकते हैं: 

MIDlet-Jar-URL: hi.jar 

जब एक Apache इंटरनेट वेब सर्वर से एक Motorola T720 सेलुलर फोन करने के लिए इन फ़ाइलों को डाउनलोड, यह पूर्ण URL शामिल नहीं करने के लिए स्वीकार्य है.  जब तक कि *.jar फ़ाइल करने के लिए एक पूर्ण URL पथ के *.jad फ़ाइल के भीतर निर्दिष्ट किया जाता है लेकिन, जब एक Yahoo!  इंटरनेट वेब सर्वर से एक Motorola T720 सेलुलर फोन करने के लिए असफल हो जायेगी,, निम्नलिखित उदाहरण के रूप में, इस प्रयास करने के लिए डाउनलोड इन फ़ाइलों को डाउनलोड: 

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

मैं इस समस्या का कारण पता नहीं है, और मुझे लगता है कि इस समस्या को अन्य सेलुलर फोन (या सेलुलर फोन सेवा प्रदाताओं) को प्रभावित नहीं करता पता है.  क्योंकि विभिन्न स्थानों के लिए एक सर्वर पर सभी *.jad फ़ाइलों में जानकारी बदलने की आवश्यकता होगी फाइल चलती ने *.jad फ़ाइल के भीतर *.jar फ़ाइल के लिए पूर्ण URL को निर्दिष्ट करने के बाद जाहिर है, असुविधाजनक है.  हालांकि, इस पूरे URL निर्दिष्ट ने *.jad अधिक कुछ सेलुलर फोन और कुछ सेलुलर फोन सेवा प्रदाताओं के लिए विश्वसनीय बना सकता है. 

4.8 परीक्षण प्रोग्राम निष्पादन द्वारा *.jar फ़ाइल और *.jad फ़ाइल

निम्न वर्ग executes के *.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 (भी "21") कहा जाता है कि "Blackjack" कार्ड खेल खेलने के लिए एक व्यक्ति को सिखाता है एक रोचक J2ME प्रोग्राम लिखा था.  एक खिलाड़ी एक डीलर कार्ड के "साथ," और "ताश" के खिलाड़ी की जोड़ी है, और प्रस्तुत की जाती है तो खिलाड़ी क्या करना है तय करना होगा: रहो,, "डबल हिट-नीचे," या "विभाजित." 

इस कार्यक्रम छह स्रोत कोड फ़ाइलें है.  इस कार्यक्रम उपयोगकर्ता इनपुट के लिए, और उत्तर सरल आरेखण और पाठ अद्यतन करता है. 
sbj_screen_on_phone.jpg

5.2 स्रोत कोड

नीचे दिए गए लिंक पर क्लिक करें, और *.jad फ़ाइल, "manifest.mf" फ़ाइल है, और एक बैच फ़ाइल, सब एक सुविधाजनक ZIP फ़ाइल में स्रोत कोड प्राप्त करने के लिए.
sbj.zip
स्रोत कोड एक ZIP फ़ाइल में निहित
6090 bytes
MD5: bf3922035b7a4eef24e107d03b7524c9
एक मनमाना निर्देशिका में है, लेकिन Extract अगर तुम "c:\" करने के लिए Windows के अंतर्गत, निम्न उदाहरण चर्चा करेंगे होना भी करीब अपने वास्तविक स्थिति को निकाल सकते हैं.
sbj_directory_files.jpg
"c:\" करने के लिए Extracting sbj.zip निर्देशिका "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 कार्यक्रम बनाने के लिए फ़ाइल को अपनी खुद की बैच लेखन के साथ शुरू हो सकती है.  इस उदाहरण बैच फ़ाइल करता the following:
(1) हटाएँ निर्देशिका पुराने *.class फ़ाइलों से युक्त; 
(2) हटाएँ निर्देशिका पुराने सत्यापित *.class फ़ाइलों से युक्त; 
(3) एक "वर्ग आउटपुट" निर्देशिका करें; 
(4) को संकलित करने के लिए *.class फ़ाइलों में सभी *.java सूत्रों का कहना है, उत्पादन की कक्षाओं "निर्देशिका में जा" के साथ. 
(5) एक "सत्यापित आउटपुट" निर्देशिका करें; 
सभी वर्गों (6) Preverify कि निर्देशिका "वर्ग" में है, और डाल को सत्यापित वर्गों ने "सत्यापित" निर्देशिका में. 
(7), एक *.jar फ़ाइल बनाएँ और mainfest फ़ाइल जोड़ते हैं, और सभी वर्गों को "सत्यापित" निर्देशिका में; 
*(8) टेस्ट के preverified कक्षाओं के माध्यम से इस कार्यक्रम को सीधे; 
*(9) टेस्ट के *.jar और *.jad via the program files; 

(*...  ये कदम (टिप्पणी) मेरी बैच फ़ाइल में से अक्षम होते हैं.) 
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 इमारत के कमान से prompt

यहाँ कमांड लाइन पर "build_sbj.bat" बैच फ़ाइल को चलाने का परिणाम है:
sbj_build_command_prompt.jpg
इस "build_sbj.bat" बैच फ़ाइल क्रियान्वित
कि "rmdir" और "del" आपरेशनों के लिए चेतावनी के संदेशों को बस यह है कि दूर करने के लिए कुछ भी नहीं है का संकेत ध्यान दें. 

तुम और यह है कि बैच फ़ाइल चलने से परिणामस्वरूप नए *.jar फ़ाइल (यानी, "classes" और "verified") नई निर्देशिकाओं देख सकते हैं:
sbj_new_files_after_build.jpg
स्रोत कोड फ़ाइलें और नए फ़ाइल जनित

5.6 *.jad फ़ाइल

इस sbj.jar फाइल को तैनात करने के लिए, हमने बनाने के लिए और उपयुक्त क्षेत्र में सही *.jar आकार है के लिए sbj.jad फ़ाइल संपादित करें जरूरत है:
फ़ाइल: 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
एक व्यक्ति ने *.jar करने के लिए जब *.jad फ़ाइल एक इंटरनेट साइट पर डाला जाता है फ़ाइल को पूरा URL जोड़ने की आवश्यकता हो सकती है - लेकिन मैं एक प्रयोग () कि मैं (यानी, मैं केवल निर्दिष्ट पूर्ण URL जिक्र से बचने के लिए सक्षम था द्वारा की खोज *.jar स्वयं द्वारा) नाम file.  हालाँकि, पूरा URL में लगा है, लेकिन मैं तुम्हें मैं क्या मनाया बताने के लिए चाहते थे.

5.7 सारांश

अपनी परियोजना में एकाधिक स्रोत फ़ाइलें बीत रहा है, सामान्य है और इस खंड में हम कई वर्गों, पैकेजिंग और निष्पादन के बाद इमारत के एक कच्चे दृष्टांत दिया था. 

कृपया निम्नलिखित अनुभाग Sun Wireless Toolkit है, जो आवेदन इमारत काफी आसान बना देता का उपयोग कर के संबंध में देख सकते है. 

6. Sun "Wireless Toolkit (version 1.0.4_01)"

6.1 परिचय

Sun निर्माण और J2ME programs पैकेजिंग के लिए एक सुविधाजनक विकास वातावरण प्रदान करता है: "Java 2 Platform Micro Edition (J2ME) Wireless Toolkit (version 1.0.4_01)". 

(चेतावनी: आप एक के रूप में पहले खंड में इस Toolkit का उपयोग करने के लिए.  करो यह अब यदि आप पहले से ही Java 2 SDK के इस संस्करण नहीं है वर्णित के Java 2 SDK 1.4 को डाउनलोड करने की ज़रूरत है.) 

निम्नलिखित इंटरनेट साइट के लिए 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: उपकरण पट्टी का शुभारंभ

इस Toolkit के बाद, आप "Start" (शुरू) मेनू से यह प्रणाली शुरू कर सकते हैं: स्थापित है
j2me_wireless_toolkit_1_0_4_ktoolbar.jpg
उपकरण पट्टी कार्यक्रम शुरू
तुम भी इस Start (शुरू) मेनू में "Documentation" मद के द्वारा MIDP-1.0 प्रलेखन का उपयोग कर सकते हैं.
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..."  पर क्लिक करें इस परियोजना सेटिंग्स मेनू पाने के लिए. 
मूल्य 100 bytes () के लिए अब के साथ "MIDlet-Jar-Size" "क्षेत्र" उपेक्षा.  हम अंततः सेट प्राप्त करने के लिए सही मूल्य का कारण होगा. 
j2me_wireless_toolkit_1_4_ktoolbar_project_midlet_settings.jpg
इस परियोजना सेटिंग्स संवाद के MIDlets पट्टी पर क्लिक करें.
मेज ("MIDlet-1") में एक ही पंक्ति पर क्लिक करें उजागर करने के लिए और उसे चुनें.  तो फिर "Edit" बटन पर क्लिक करें. 
j2me_wireless_toolkit_1_4_ktoolbar_project_no_icon.jpg
अगर आप अपने *.jar फाइल में डाल करने के लिए एक *.png फ़ाइल नहीं है कि "Icon" मैदान साफ है. 
कर the following: 

(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 तुरंत स्थानीय emulator, या डाउनलोड करने के लिए दूसरों के लिए अपने इंटरनेट साइट पर तुरंत तैनाती के लिए एयर (OTA) ओवर में निष्पादन "के लिए तैयार हैं."  इस *.jad फ़ाइल में *.jar आकार क्षेत्र सही हो जाएगा.  कदम (3) तुम फिर से बनाना हर एक बार करना भूलना मत! 

अब आप "Run" (रन) बटन से टकराने के द्वारा परीक्षण कर सकते हैं. 
j2me_wireless_toolkit_1_4_ktoolbar_project_launch.jpg
j2me_wireless_toolkit_1_4_ktoolbar_project_running.jpg
इस परियोजना के लिए "Run" साधने में emulator करने के लिए *.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 यह सुनिश्चित है कि इंटरनेट के वेब सर्वर *.jar फ़ाइलें और *.jad फ़ाइलों के लिए MIME प्रकार को निर्दिष्ट

यदि आप एक Apache इंटरनेट वेब सर्वर है, तो आप एक फ़ाइल ".htaccess" अपनी वेब साइट रूट निर्देशिका के भीतर नाम पैदा करने की जरूरत है.  इस ".htaccess" फ़ाइल तुम ऐसी जोड़ने या MIME प्रकार की फ़ाइल अधिभावी के रूप में Apache विन्यास, ओवरराइड करने के लिए सक्षम बनाता है.  क्या आप इस MIME प्रकार *.jar फ़ाइलें और *.jad फ़ाइलें, के रूप में निम्न पाठ फ़ाइल में प्रदर्शित करने के लिए इसी निर्दिष्ट जोड़ने चाहिए: 
htaccess_image.jpg
इस Apache इंटरनेट वेब सर्वर के लिए मेरा पसंदीदा ".htaccess" file.  नोट: मैं इस फ़ाइल ".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" फ़ाइल के समय प्रत्येक नई आने वाली गतिविधि पर है, और सर्वर reloads कि फ़ाइल अगर संशोधन दिनांक और समय बदल गया है लगता है. 

यदि आप इंटरनेट वेब सर्वर की एक अलग तरह की है, तो आप कैसे MIME प्रकार को निर्दिष्ट करने के लिए निर्धारित करना चाहिए, और आपको लगता है कि *.jar फ़ाइलें और *.jad फ़ाइलें उपयुक्त MIME प्रकार आवंटित हो जाते हैं यह सुनिश्चित करना होगा. 

अगर MIME प्रकार स्थापित नहीं किया गया है अगर सेल्युलर फ़ोन अपने *.jad फ़ाइल डाउनलोड करने के लिए मना कर दिया और निम्न त्रुटि रिपोर्ट तुम जानते हो जाएगा: 

"406: Not Acceptable" 

7.2 वैकल्पिक दस्तावेजों HTML या WML के भीतर *.jad फ़ाइल के लिंक प्रदान

AT&T सेवा के साथ Motorola T720 J2ME सेलुलर फोन एक *.jad सीधे, में सेलुलर फोन करने के लिए फ़ाइल को *.jad के URL टाइपिंग द्वारा फ़ाइल डाउनलोड करने में सक्षम है.  यह अन्य सेलुलर फोन सेवा प्रदाताओं के साथ अन्य J2ME सेलुलर फोन के लिए काम करने की संभावना है. 

हालाँकि, यह अधिक लोगों के लिए एक HTML दस्तावेज़ के भीतर एक लिंक का चयन या एक WML दस्तावेज़ के भीतर द्वारा *.jad फ़ाइल डाउनलोड करने के लिए सुविधाजनक हो सकता है.  (नोट: WML अब अप्रचलित है.  अब HTML व्याख्या कर सकते हैं अधिकांश सेलुलर फोन.) 
file_image_hi_html.jpg
एक *.jad फ़ाइल करने के लिए एक कड़ी के साथ एक सरल HTML दस्तावेज़
file_image_hi_wml.jpg
एक *.jad फ़ाइल करने के लिए एक कड़ी के साथ एक सरल WML (WAP) पृष्ठ  (नोट: WML अब अप्रचलित है.  अब HTML व्याख्या कर सकते हैं अधिकांश सेलुलर फोन.) 

8. एक इंटरनेट साइट से सॉफ्टवेयर डाउनलोड

निम्नलिखित छवियों के रूप में विकसित और ऊपर पिछले अनुभागों में वर्णित तैनात मैं डाउनलोड करने के लिए और MIDlet निष्पादित किया कार्रवाई का सही अनुक्रम दिखा.  इन छवियों को अपने मोबाइल फोन के स्क्रीन की तस्वीरें हैं. 
t720_screens_download_program.jpg
(1) Main स्क्रीन: जब आप फोन खोलते हैं, तो आप मुख्य स्क्रीन देखते हैं.  प्रेस केंद्र बटन मुख्य मेनू में जाने के लिए. 
(2) Main Menu: इस मद में ले जाएँ "WebAccess". 
(3) WebAccess: इस मद में ले जाएँ "Go To URL". 
(4) Enter URL: एक *.jad फ़ाइल के URL में टाइप करें (या एक HTML दस्तावेज़, या एक WML दस्तावेज़ के). 
(5) Details; यह जानकारी *.jad फ़ाइल से पार्स था.  प्रेस DOWNLD के *.jar फ़ाइल डाउनलोड करने के लिए. 
(6) Download Complete; इस संदेश के लिए गायब करने के लिए रुको; 
(7) Installing; इस संदेश के लिए गायब करने के लिए रुको; 
(8) xxxx bytes transferred; इस संदेश के लिए गायब करने के लिए रुको; 
(9) Installed; इस संदेश के लिए गायब करने के लिए रुको; 


के बाद इस कार्यक्रम स्थापित कर दिया गया है जब WebAccess मेनू फिर,, बस प्रत्येक मेनू बाहर निकलें मुख्य स्क्रीन पर वापस जाने के लिए प्रकट होता है. 
t720_screens_start_program.jpg
(1) Main स्क्रीन: जब आप फोन खोलते हैं, तो आप मुख्य स्क्रीन देखते हैं.  चुनें मुख्य मेनू, या मुख्य स्क्रीन पर नीचे कर्सर प्रेस द्वारा "Games & Apps" विकल्प. 
(2) Java Powered: इस स्क्रीन के लिए गायब करने के लिए रुको. 
(3) Games & Apps: चुनें मद अपने प्रोग्राम के नाम के साथ! 
(4) या!  अपने कार्यक्रम के सफल क्रियान्वयन! 
सेल्युलर फोन पर इस कार्यक्रम की उपस्थिति बहुत emulator के भीतर स्वरूप के समान है.

9. डाउनलोड त्रुटि संदेश और स्थापना त्रुटि संदेश

9.1 Motorola T720 (J2ME) त्रुटि संदेश

निम्नलिखित त्रुटि संदेश केवल Motorola T720 (GSM/J2ME) सेलुलर फोन करने के लिए प्रासंगिक हैं. 

9.1.1 "Download Failed"

क्योंकि # 1
1644 bytes से ज्यादा कोई फ़ाइल (HTML, JAD, JAR, MID, GIF) कुछ इंटरनेट वेब होस्ट करता है और सर्वर के लिए इस त्रुटि के कारण होगा.  यहाँ मेजबान और सर्वर की एक संक्षिप्त सूची है: 
Host / Server                                               Error
===================================================    =================
Apache                                                       No
Microsoft Personal Web Server (direct from your PC)          No
Earthlink (Apache)                                           No
Yahoo! (custom server)                                       Yes
इस समस्या को Motorola T720 GSM/J2ME firmware में जो टुकड़े में विफल करने के लिए फ़ाइलें डाउनलोड कारणों एक दोष, के कारण है.
केवल एक स्पष्ट समाधान इंटरनेट वेब सर्वर मेजबान या प्रकार स्विच करने के लिए है.  अन्य सेलुलर फोन प्रकार इस समस्या नहीं है. 
क्योंकि # 2
एक *.jad फ़ाइल का "MIDlet-Jar-Size:" क्षेत्र की इसी *.jar फ़ाइल के सटीक बाइट कुल संकेत नहीं करता है.

9.1.2 "Failed: File Corrupt"

क्योंकि # 1
इस *.jar फ़ाइल जो विशिष्ट सेलुलर फोन पर उपलब्ध नहीं हैं API कार्यों का उपयोग करता है. 

उदाहरण के लिए, MIDP 2.0 कार्यों के Motorola T720 GSM/J2ME सेलुलर फोन पर (जो केवल) कार्यों MIDP 1.0 है उपलब्ध नहीं हैं.  एक प्रोग्राम एक emulator के भीतर, पर निष्पादित हो सकता है कि सेलुलर फोन पर निष्पादित नहीं हो सकती है. 

के समाधान के स्रोत कोड में MIDP 2.0 कार्यों के लिए खोज करने के लिए और MIDP 1.0 काम करता है, या समाप्त जो MIDP 2.0 कार्यों की आवश्यकता होती है उन विशेषताओं के साथ उन की जगह है. 
क्योंकि # 2
इस "manifest.mf" के "jar" उपयोगिता () के द्वारा *.jar फ़ाइल बनाने के लिए इस्तेमाल किया फ़ाइल त्रुटियाँ हैं. 

सुनिश्चित करें कि इस "manifest.mf" फ़ाइल CLDC और MIDP के निम्नलिखित संस्करणों में है: 
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
पूरे "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
फ़ाइल के अंतिम पंक्ति सहित "manifest.mf" फ़ाइल में पाठ की प्रत्येक पंक्ति,, एक carraige वापसी (CR; 13; 0x0d) "चरित्र के साथ" एक लाइन फ़ीड के बाद अंत "चाहिए" चरित्र (LF; 10; 0x0a). 

उदाहरण यह है कि यहाँ दिखाया से फ़ाइल के अपने खुद के संस्करण में "manifest.mf" फ़ाइल का केवल खेतों भिन्न चाहिए पहले तीन क्षेत्रों के उदाहरण में सूचीबद्ध हैं.  अंतिम तीन क्षेत्रों उदाहरण के साथ अंतिम क्षेत्र के बाद गाड़ी वापसी और लाइन फ़ीड किया जाना चाहिए एक सटीक मेल, "और फ़ाइल के अंतिम दो" अक्षरों का होना चाहिए. 

यहाँ "manifest.mf" फ़ाइल के अपने संस्करण में संभव समस्याओं हैं: 
(1) आपकी फ़ाइल "manifest.mf" कि अक्षर ASCII नहीं कर रहे हैं वर्ण हैं; ASCII अक्षर का एक चार्ट में (देखो; के 0 127 रेंज के माध्यम से अवैध है बाहर के किसी भी चरित्र); 
(2) आपकी फ़ाइल "manifest.mf" प्रत्येक पंक्ति "के" अंत में "प्रत्येक" वाहन वापसी (CR) "चरित्र के बाद चरित्र" (LF) एक लाइन फ़ीड नहीं है; 
(3) आपकी फ़ाइल "manifest.mf" प्रत्येक पंक्ति के अंत में (CR)(LF) लाइन समाप्ति से पहले अदृश्य रिक्त स्थान या टैब है; 
(4) आपका "manifest.mf" फ़ाइल एक "Manifest-Version:" लाइन शामिल हैं; 
आपके "manifest.mf" फ़ाइल के (5) अंतिम पंक्ति एक (CR)(LF) लाइन समाप्ति के साथ समाप्त नहीं होता है, लेकिन बजाय बस फ़ाइल के अंत तक पहुँच; 
(6) आपकी फ़ाइल "manifest.mf" सटीक क्षेत्रों के रूप में और खेतों की सही व्यवस्था नहीं है ऊपर के उदाहरण में दिखाया गया; 
(7) आपका CLDC संस्करण बिल्कुल, या 1.0 नहीं है और आपके MIDP संस्करण बिल्कुल 1.0 नहीं है; 
(8) आपका विक्रेता का नाम जो ASCII अक्षर नहीं यूनिकोड वर्णों की अनुमति है (जैसे,) नहीं हैं अक्षर है; 
(9) आपका "manifest.mf" फ़ाइल को "MIDlet-1:" पंक्ति में दूसरी अल्पविराम के बाद एक स्थान नहीं है; 
शायद कुछ मामलों से ऊपर सूचीबद्ध की वास्तव में कई सेलुलर फोन के लिए, समस्याओं का कारण नहीं है लेकिन सभी मामलों को सफल करने के लिए इस डाउनलोड को सक्षम हो सकता है ऊपर सूचीबद्ध को नष्ट करने की.  इस "manifest.mf" फ़ाइल के रूपांतरों के साथ डाउनलोड करने के बाद सफल है, तुम कर सकते हो प्रयोग क्या आप डाउनलोड त्रुटियों के कारण के बिना अन्य चीज़ें कर सकते हैं खोजने के लिए.  जब "manifest.mf" फ़ाइल को संशोधित किया गया है, इसे डाउनलोड करने कि इस कार्यक्रम का लक्ष्य सभी सेलुलर फोन के लिए और सेलुलर फोन सेवा प्रदाताओं काम करने के लिए जारी की पुष्टि करने के लिए महत्वपूर्ण है.  कुछ फोन और सेवाओं से कम दूसरों की तुलना में लचीले होते हैं. 

जब एक "manifest.mf" फ़ाइल को jar कार्यक्रम के जरिये एक *.jar फ़ाइल में जोड़ा है, तो jar कार्यक्रम के *.jar फ़ाइल के भीतर मैनिफ़ेस्ट फ़ाइल का एक नया संस्करण बनाता है.  इस *.jar फ़ाइल के भीतर मैनिफ़ेस्ट फ़ाइल का उत्पन्न संस्करण "MANIFEST.MF" नाम पर रखा गया है.  इस jar कार्यक्रम कि "manifest.mf" में मौजूद नहीं है इस फ़ाइल को प्रोग्रामर द्वारा प्रदान की गई फ़ाइल के खेतों जोड़ सकता है.  जब तक आप कुछ क्षेत्रों को समाप्त करने के लिए और शेष क्षेत्रों बिल्कुल उदाहरण की तरह ऊपर दिखाए फ़ाइल "manifest.mf" देखो कर तैयार हैं, एक *.jar फ़ाइल से एक "MANIFEST.MF" फ़ाइल निकालने मत करो. 

9.1.3 "Unsupported Content Type"

क्योंकि # 1
सेल्युलर फ़ोन एक विशिष्ट फ़ाइल के लिए दूरस्थ सर्वर द्वारा रिपोर्ट की MIME प्रकार स्वीकार नहीं कर सकता. 

उदाहरण के लिए, JPG छवि फ़ाइलों को Motorola T720 द्वारा समर्थित नहीं हैं और इस त्रुटि के कारण होगा.

अगर एक समर्थित फ़ाइल प्रकार के लिए MIME प्रकार (जैसे, GIF, MID, JAD, JAR) सही ढंग से सर्वर के द्वारा की सूचना नहीं है यह त्रुटि भी हो सकता है.  एक व्यक्ति बहुत समर्थित फ़ाइल प्रकारों के लिए सटीक MIME प्रकार रिपोर्ट करने के लिए सावधान रहना चाहिए. 
क्योंकि # 2
स्वयं की जरूरत के सेलुलर फोन पर The file कैशे (जैसे, Browser Settings -> Clear Cache) को साफ किया जाना है. 

यदि आप हाल ही में एक दूरस्थ सर्वर पर है, और MIME प्रकार जोड़ा तो है कि पहले एक गलत या गुम MIME प्रकार की वजह से स्थापित करने में विफल रहा था एक फ़ाइल डाउनलोड करने के लिए, तो फिर इस सेल्युलर फोन पर फिर फ़ाइल को डाउनलोड करने के लिए एक बाधा हो सकती है the file कैशे का प्रयास सही MIME प्रकार के साथ. 

यह भी कि दूरदराज के फ़ाइल को संशोधित किया गया था और यह है कि कैश्ड संस्करण दोषपूर्ण है और संभव है से मरम्मत की फ़ाइल संस्करण रोक रहा है एक प्रतिस्थापन के रूप में डाउनलोड किया जा रहा. 

समाशोधन के सेलुलर फोन पर ब्राउज़र का कैश कि नवीनतम सर्वर विन्यास से एक बाद डाउनलोड लाभ (, नई MIME settings) उदा और दूरस्थ फ़ाइल अद्यतन सुनिश्चित करना चाहिए. 
क्योंकि # 3
Motorola प्रलेखन [से: http://developers.motorola.com/developers//wireless/global/emea/other/UCT.html]
कैसे WAP में "Unsupported Content type" त्रुटियों से बचने के लिए 

यदि आप WAP Unsupported Content type जरूरी सामग्री-प्रकार सेटिंग के कारण नहीं है, यह कहने में कोई त्रुटि मिलती है.  कई WAP पन्नों स्वीडिश (å ö ä) जैसे, और विशेष वर्ण, contain में आदेश ठीक से क्या आप उपयोग करना जो चरित्र को निर्दिष्ट करने की आवश्यकता प्रदर्शित करने के लिए उन्हें प्राप्त करने के लिए.  आदेश में एक WAP पृष्ठ पर प्रयोग किया जाता है, तो आप सर्वर प्रतिक्रिया में Content-Type हैडर को संशोधित के चरित्र सेट को शामिल करने के लिए जो चरित्र सेट को निर्दिष्ट करने के लिए, उदाहरण के लिए "Content-Type: text/vnd.wap.wml; iso-8859-1".  जब कोई उपयोगकर्ता एक सर्वर का जवाब हो जाता है, यह ठीक से सामग्री प्रदर्शित करने के लिए सभी आवश्यक जानकारी होनी चाहिए. 

हालांकि, वहाँ एक समस्या इस दृष्टिकोण का उपयोग करने के साथ है.  सभी फोन जो चरित्र के अनुरोध शीर्षक में "Accept-Charset" का उपयोग करके वे समर्थन सेट के प्रवेश द्वार करने के लिए संकेत.  अगर वे, Unsupported Content type उत्पन्न किया जाना चाहिए त्रुटि मेल नहीं खाते HTML विनिर्देशों के अनुसार, इस किरदार के लिए एक सर्वर प्रतिक्रिया में विनिर्दिष्ट सेट, और तुलना की जानी चाहिए. 

इस समस्या को और अधिक जटिल बनाने के लिए, कुछ WAP gateways के चरित्र की तुलना के बारे में कोई परवाह नहीं है के लिए अनुरोध उपकरण द्वारा, इसलिए सामग्री ठीक से उन उपकरणों पर प्रदर्शित नहीं करेगा समर्थित निर्धारित किया है.  एक और जटिलता कि स्ट्रिंग मामले असंवेदनशील है, लेकिन चरित्र सेट को निर्दिष्ट कुछ WAP gateways के रूप में मामला संवेदनशील तार उन्हें इलाज है. 

सब साथ हैं, वहाँ होंगे बहुत अलग परिणाम तुम, तुम और जो WAP प्रवेश द्वार का प्रयोग सर्वर प्रतिक्रिया क्या है प्रयोग क्या डिवाइस पर निर्भर करता है. 

एक ही रास्ता है कि आपकी सामग्री ठीक से हमेशा ग्राहक द्वारा स्वीकार किया जाता है और उस चरित्र को भेजने से पहले यह निर्धारित करने के लिए आपकी प्रतिक्रिया बदाल क्या संप्रतीक समुच्चय की जाँच करने के लिए है प्रदर्शित किया जाएगा सुनिश्चित किया जाना है. 

9.1.4 "406: Not Acceptable" ("The server cannot generate a response that your client can accept.")

क्योंकि # 1
तुम एक Verizon फोन है! 

Verizon की अनुमति नहीं देता डाउनलोड छवियाँ (GIF), करने के लिए अपने ग्राहकों मनमाना इंटरनेट वेब सर्वरों से अंगूठी टन (MIDI), या कार्यक्रम,.  एक या तो उनके "Get It Now" सेवा, या एक USB केबल और "Get Around 'Get It Now' (GAGIN)" सॉफ्टवेयर का उपयोग करें का उपयोग करना आवश्यक है. 

समाधान: बस मुक्त बाजार में "प्रतियोगिता के लिए बंद" प्लेटफार्मों "को समाप्त करने के लिए प्रतीक्षा करें."  पूरे प्रौद्योगिकी के समय इस सफल द्वारा अप्रचलित हो सकता है, लेकिन यह क्या है जब कंपनियों के लालच अकेले द्वारा निर्देशित कर रहे हैं होता है. 
क्योंकि # 2
त्रुटि संदेश यह है कि MIME प्रकार फ़ाइल एक्सटेंशन के साथ फ़ाइल के (जैसे, .gif, .mid, .jar) जुड़े इंटरनेट वेब सर्वर द्वारा निर्दिष्ट नहीं किया गया है डाउनलोड किया जा रहा दर्शाता है.

यदि आप एक Apache इंटरनेट वेब सर्वर है, उदाहरण के लिए, तब तुम, निम्नलिखित लाइनों को जोड़कर एक ".htaccess" फ़ाइल को संशोधित करना चाहिए:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
AddType audio/midi mid

9.1.5 "413: Requested Entity Too Large"

क्योंकि # 1
सर्वर फ़ाइल होस्टिंग कि (जैसे, GIF, MID, JAR) फ़ाइल के लिए MIME प्रकार निर्दिष्ट नहीं किया डाउनलोड किया जा रहा.  इस प्रकार, सेलुलर फोन है कि फ़ाइल है सादे पाठ मान लिया गया.  इसके अलावा, सेलुलर फोन के आकार बाइट्स () जो आकार बाइट्स () द्विपदीय फाइल के (जैसे, GIF, MID, JAR में) पर सीमा से छोटी है पाठ फ़ाइलों का में पर एक सीमा हो सकता है.  इसलिए, एक बाइनरी फ़ाइल एक पाठ फ़ाइल के रूप में व्याख्या की अधिकतम एक पाठ फ़ाइल के आकार की अनुमति को पार करने के लिए, और संभावना है इस प्रकार की त्रुटि का कारण होगा. 

यदि आप एक Apache इंटरनेट वेब सर्वर है, उदाहरण के लिए, तब तुम, निम्नलिखित लाइनों को जोड़कर एक ".htaccess" फ़ाइल में परिवर्तन करना होगा:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
AddType audio/midi mid
क्योंकि # 2
की स्थापना की स्पष्ट रूप से इस त्रुटि भी हो सकता है, भले ही दूरस्थ सर्वर को उचित MIME प्रकार है.  मैं अभी तक जब इस त्रुटि के बजाय इस स्थिति के लिए "Download Failed" होता निर्धारित नहीं की है. 

जाहिर है, इस Motorola T720 GSM/J2ME सेलुलर फोन जो फ़ाइलों के लिए अनुमति देता है कि HTTP 1.1 विनिर्देशन का एक पहलू प्रक्रिया नहीं कर सकता में टुकड़े करने के लिए, एकाधिक "GET" अनुरोधों की आवश्यकता होती है टूट जाए. 

जब कुछ इंटरनेट वेब सर्वर से किसी भी प्रकार (जैसे, HTML, JAD, JAR, MID, GIF) 1644 bytes से बड़ी फाइल को डाउनलोड फाइल को, करने के लिए इस त्रुटि के कारण जाएगा Motorola T720 GSM/J2ME सेलुलर फोन का इस्तेमाल करते हैं.  यहाँ इंटरनेट वेब की एक संक्षिप्त सूची प्रदाताओं होस्टिंग और है या नहीं इंटरनेट वेब होस्टिंग प्रदाता ने Motorola T720 GSM/J2ME सेलुलर फोन के लिए एक समस्या का कारण बनता है:
Host / Server                                               Error
===================================================    =================
Apache                                                       No
Microsoft Personal Web Server (direct from your PC)          No
Earthlink (Apache)                                           No
Yahoo! (custom server type)                                  Yes
इस समस्या का जो टुकड़े में फ़ाइलों को डाउनलोड करने के लिए इसकी क्षमता को प्रभावित करता है कि Motorola T720 GSM/J2ME सेलुलर फोन, में firmware के कारण है. 

केवल एक स्पष्ट समाधान, जब Motorola T720 GSM/J2ME सेलुलर फोन करने के लिए डाउनलोड, कुछ इंटरनेट वेब सर्वर प्रकार होस्टिंग से बचने के लिए है.  अधिकांश अन्य सेलुलर फोन प्रकार है, और इस समस्या नहीं है तो इस समस्या को नजरअंदाज कर दिया अब सुरक्षित हो सकता है. 

9.1.6 "Connection unsuccessful.  Try again later."

क्योंकि # 1
यह त्रुटि है कि इस अनुरोध फ़ाइल होस्टिंग है कि इंटरनेट सर्वर के साथ कुछ नहीं करना है. 

यदि आप इस त्रुटि मिलती है, मुझे लगता है कि आप निम्नलिखित बातें करते सुझाव देते हैं: 
(1) साफ़ ब्राउज़र का कैश; 
(2) साफ़ ब्राउज़र इतिहास; 
फोन बंद (3) मुड़ें; 
(4) निकालें बैटरी; 
(5) कुछ सेकंड रुको; 
(6) पीठ में फोन करने के लिए बैटरी रखो; 
(7) पावर फोन; 
(8) फिर से डाउनलोड करने का प्रयास करें; 
मैं कई दिनों के बाद मैं पहली बार एक मोबाइल फोन खरीदा के लिए "Connection unsuccessful.  Try again later.  त्रुटि संदेश प्राप्त किया.  फिर, द्वारा यादृच्छिक मौका है, मैं बैटरी हटा दिया.  जब मैं वापस में सेलुलर फोन करने के लिए बैटरी डाल, मैं तुरंत इंटरनेट का उपयोग करने के लिए किया था. 

मैं बाद में छह महीनों के दौरान, और कई बार इस त्रुटि प्राप्त की प्रक्रिया से ऊपर इंटरनेट हर बार जब तक पहुँच बहाल किया है.  मैं सबसे अधिक महत्वपूर्ण हो सकता है की प्रक्रिया का जो कदम निर्धारित नहीं किया है, लेकिन मुझे लगता है कि बस बैटरी निकाल दिया जाता है और वापस में सेलुलर फोन करने के लिए बैटरी लगाने पर्याप्त हो सकता है विश्वास. 

मेरी राय में भी अस्पष्ट, यह त्रुटि संदेश है.  क्यों प्रयास असफल कनेक्ट करने के लिए था?  सेल्युलर फ़ोन सेवा नेटवर्क भी व्यस्त था?  सेल्युलर फ़ोन सेवा की "Gateway" सर्वर से कार्य नहीं कर रहा था?  है मेरी सेल्युलर फ़ोन प्राप्त नहीं या पर्याप्त रेडियो सिग्नल की शक्ति हस्तांतरित हो?  जब फिर से डाउनलोड करने का प्रयास करने के लिए एक अच्छा समय होगा?  अब से दस सेकंड?  अब से एक घंटा?  अब से एक हफ्ते?  अगर यह ज्यादा इस समस्या का कारण के बारे में विशिष्ट थे त्रुटि संदेश अधिक है और अगर इसे और अधिक एक संभव समाधान के बारे में विशिष्ट थे मददगार होगा. 
क्योंकि # 2
यदि आप या यदि आप गया कि इंटरनेट का उपयोग करने में सक्षम नहीं है, तो फिर एक "Master Reset", किया सेल्यूलर फोन पर नेटवर्क सेटिंग निरीक्षण.  नेटवर्क सेटिंग्स का एक (उदाहरण के लिए Motorola T720 GSM/J2ME सेलुलर फोन के लिए, Los Angeles, California क्षेत्र AT&T सेवा के लिए) में, इस अनुभाग निम्नलिखित लिंक द्वारा निर्दिष्ट देखें: 
AT&T सेलुलर फोन configuration सेटिंग्स नेटवर्क (के लिए)

10. बनाने, भेंट, और डाउनलोड करने "की अंगूठी टन"

10.1 बनाएँ या MIDI (*.mid) फ़ाइल एक का अधिग्रहण

आप बना सकते हैं या एक MIDI ध्वनि किसी भी स्रोत से (*.mid) फ़ाइल हासिल कर लेते हैं.  मैं इंटरनेट का एक सरल खोज द्वारा टेलीविजन शो "Knight Rider" (1982-1986) MIDI प्रारूप (जैसे, "knightrider.mid") में करने के लिए इस विषय संगीत पाया. 

निम्नलिखित छवि को आप के कैसे एक MIDI फ़ाइल एक MIDI संपादक में प्रकट होता है कुछ विचार देता है.  उस पर अपने फ़ोन करने के लिए संगीत पाने के लिए एक MIDI संपादक हैं करने के लिए आवश्यक नहीं है.  आप किसी भी स्रोत से एक मौजूदा MIDI फ़ाइल (*.mid) प्राप्त कर सकते हैं.  लेकिन, आप भी अपना खुद का मूल polyphonic संगीत बनाने के लिए अपनी पसंद का एक MIDI संपादक का उपयोग कर सकते हैं. 
home_studio_midi_knight_rider.jpg
Cakewalk Home Studio: "knightrider.mid" खेल

10.2 सुनिश्चित करें कि आपके इंटरनेट वेब सर्वर के MIDI MIME प्रकार जानता है

यदि आप एक Apache इंटरनेट वेब सर्वर है, उदाहरण के लिए, तब तुम, निम्नलिखित लाइनों को जोड़कर एक ".htaccess" फ़ाइल में परिवर्तन करना होगा: 
AddType audio/midi mid
इस ".htaccess" फ़ाइल निर्दिष्ट करना होगा या MIME प्रकार ओवरराइड विभिन्न प्रकार की फ़ाइलों के लिए सर्वर के द्वारा संकेत (आमतौर पर .MID, .GIF, .JAR जैसे फ़ाइल एक्सटेंशन, द्वारा) के संकेत. 

यदि आप पहले से ही अन्य प्रकार की फ़ाइल के लिए अन्य MIME प्रकार जोड़ लिया है, तो आपका पूरा ".htaccess" फ़ाइल में निम्नलिखित पाठ सदृश हो सकता है:
AddType text/vnd.sun.j2me.app-descriptor jad
AddType application/java-archive jar
AddType text/vnd.wap.wml wml
AddType audio/midi mid
जाहिर है, बनाने या Apache सर्वर व्यवहार का एक तत्काल बदलने में इस फ़ाइल परिणामों में सुधार.  मैं Apache सर्वर की जाँच के संशोधन तिथि और ".htaccess" फ़ाइल के समय प्रत्येक नई आने वाली गतिविधि पर है, और सर्वर reloads कि फ़ाइल अगर संशोधन दिनांक और समय बदल गया है लगता है. 

यदि आप इंटरनेट वेब सर्वर की एक अलग तरह की है, तो आप कैसे MIME प्रकार को निर्दिष्ट करने के लिए निर्धारित करना चाहिए, और आपको लगता है कि *.jar फ़ाइलें और *.jad फ़ाइलें उपयुक्त MIME प्रकार आवंटित हो जाते हैं यह सुनिश्चित करना होगा. 

अगर MIME प्रकार स्थापित नहीं किया गया है अगर सेल्युलर फ़ोन अपने *.jad फ़ाइल डाउनलोड करने के लिए मना कर दिया और निम्न त्रुटि रिपोर्ट तुम जानते हो जाएगा: 

"406: Not Acceptable" 

10.3 आपके इंटरनेट वेब सर्वर से पर MIDI फ़ाइल (*.mid) रखो

मैं एक MIDI मेरे इंटरनेट वेब सर्वर के रूट निर्देशिका में "kr.mid" नाम फ़ाइल की प्रतिलिपि बनाई.  तुम "Filezilla" जैसे FTP स्थानान्तरण सरल और सुविधाजनक बनाने के लिए सॉफ्टवेयर का उपयोग कर सकते हैं. 

10.4 डाउनलोड अपने फ़ोन सेवा की इंटरनेट सेवा के माध्यम से अपने मोबाइल फोन के लिए MIDI फ़ाइल

इस Motorola T720 GSM/J2ME सेलुलर फोन के लिए, एक MIDI फ़ाइल डाउनलोड करने के "WebAccess" मेनू के साथ शुरू होता है.  है, URL के MIDI फ़ाइल की टाइपिंग के बाद, "Go To URL" चुनना डाउनलोड शुरू होता है.  उदाहरण के लिए, मैं निम्नलिखित URL में टाइप:
http://www.colinfahey.com/kr.mid
यदि डाउनलोड, और सफल रहा है अगर तुम एक Motorola T720 cellular phone का उपयोग कर रहे हैं, तो आपको अपने मोबाइल फ़ोन पर फ़ाइल भंडारण का विकल्प दिया जाएगा.  जब आप फ़ाइल को स्टोर करने का निश्चय करते, तो आप बस अंगूठी टन के अपने सेट में या भंडारण के बजाय मौजूदा रिंग टोन की जाने वाली फ़ाइल को स्थापित करने का विकल्प दिया जाता है (जो भी है, एक तरफ प्रभाव के रूप में, अंगूठी टन के अपने सेट में भंडार) . 
निम्नलिखित छवियों को डाउनलोड करने और Motorola T720 GSM/J2ME सेलुलर फोन के लिए MIDI फ़ाइलें खेल की प्रक्रिया को संक्षेप में.  अन्य J2ME, अन्य सेलुलर फोन सेवा प्रदाताओं के साथ, एक ऐसी ही डाउनलोड प्रक्रिया है की संभावना है सेलुलर फोन enabled.  यदि आपका मोबाइल फोन सेवा प्रदाता Verizon, तो तुम भाग्य से बाहर हो जाता है, इस में से कोई काम करेंगे, और तुम जाना चाहिए और बंद फोन बाजार को नष्ट में मदद करने के लिए "एक "Android" फोन" खरीद! 
t720_screen_midi_download.jpg
(1) Main स्क्रीन: प्रेस उपयुक्त बटन मुख्य मेनू को दिखाने के लिए. 
(2) Main Menu: इस "WebAccess" मद में जाओ. 
(3) WebAccess: इस "Go to URL" मद में जाओ. 
(4) Enter URL: एक इंटरनेट वेब साइट पर एक MIDI फ़ाइल (*.mid) के URL में टाइप करें. 
(5) Connecting: इस डाउनलोड के लिए शुरू करने के लिए रुको.  (यदि आप, तो इंटरनेट के वेब सर्वर (*.mid) फ़ाइलें) MIDI के लिए एक उपयुक्त MIME प्रकार निर्दिष्ट नहीं किया "406: Not Acceptable" त्रुटि संदेश प्राप्त किया.) 
(6) Downloading: इस डाउनलोड खत्म करने के लिए रुको. 
(7) Download Complete: इस स्क्रीन के लिए गायब करने के लिए रुको. 
(8) MIDI Playback: The MIDI फ़ाइल तुरंत खेल शुरू होता है.  प्रेस मेनू बटन Tone Menu करने के लिए जाने के लिए, और (9), या "STORE" बटन दबाएँ कदम करने के लिए जारी है और (12) कदम के पास जाओ. 
(9) Tone Menu: आप खेलने के विकल्प का है ... 
(10) Tone Menu: आप मिल रहा विवरण का विकल्प है. 
(11) Details: यह हम बाइट में आकार देखें. 
(12) Store Options: से कदम हम "STORE" बटन हिट कर सकते हैं इस मेनू को पाने के लिए (8).  तुम धुनों के फ़ोन के संग्रह करने के लिए संचय करने का विकल्प है.  हिट "SELECT" स्टोर करने के लिए. 
(13) Stored: The MIDI धुन संग्रहीत किया गया है. 
(14) Total Bytes Transferred: यह बस bytes डाउनलोड की संख्या की एक सूचना है, ताकि आप अपने आगामी सेलुलर फोन सेवा के बिल से आश्चर्यचकित नहीं हैं! 

10.5 खेलने के सेलुलर फोन पर किसी भी समय इस MIDI फ़ाइल

आप अपने मोबाइल फोन पर किसी भी समय संग्रहीत MIDI फ़ाइलें खेल सकते हैं, और आप अपनी अंगूठी ध्वनि के रूप में किसी भी MIDI फ़ाइल का उपयोग कर सकते हैं.
t720_screen_midi_playback.jpg
(1) Main स्क्रीन: मुख्य मेनू में जाने के लिए प्रेस उपयुक्त बटन. 
(2) Main Menu: "Media Center" में जाओ. 
(3) Media Center: "My Tones" में जाओ. 
(4) My Tones: डाला टोन तुरंत खेल शुरू होता है.  आप "EDIT" विकल्प के साथ नाम बदल सकते हैं.  मेनू बटन मार आप अन्य विकल्प देता है. 

10.6 सेट में एक MIDI फ़ाइल का उपयोग करने की शैली रिंग

निम्नलिखित मेनू स्क्रीन के माध्यम से जाओ:

(1) Main स्क्रीन 
(2) Main Menu 
(3) Ring Styles: प्रेस "SELECT" 
(4) [Silent, Soft, Loud] Detail: प्रेस "CHANGE" 
(5) Calls: [current ring style/tune]: प्रेस "CHANGE" 


पुस्तक हालांकि अंगूठी शैलियों की सूची (मूक, कंपन शैलियों, स्थायी अंगूठी धुनों, आदि), और नीचे से आप अपने डाउनलोड की धुनों देखेंगे.  बस अपने नए अंगूठी धुन सक्रिय बनाने के लिए "SELECT" बटन दबाएँ! 

11. बनाने, भेंट, और डाउनलोड छवियाँ

11.1 (*.gif) एक 120 * 160 GIF छवि फ़ाइल बनाएँ

निम्नलिखित चरणों का एक 120 * 160 GIF छवि फ़ाइल बनाने के लिए इस्तेमाल किया जा सकता है उपयुक्त को Motorola T720 GSM/J2ME सेलुलर फोन पर प्रदर्शित करने के लिए (*.gif), या तो मुख्य स्क्रीन, या छवि गैलरी में एक छवि के रूप में करने के लिए एक पृष्ठभूमि छवि के रूप में. 
Microsoft Paint या या Adobe Photoshop किसी अन्य उपयुक्त छवि संपादन सॉफ्टवेयर के साथ (1) खोलें किसी भी छवि फ़ाइल; 
(2) स्केल या फसल 120 पिक्सल चौड़ा और 160 पिक्सल ऊँचा (यानी, एक 120 * 160 पिक्सेल छवि) करने के लिए छवि; 
(3) एक GIF छवि प्रारूप (*.gif) में फ़ाइल सहेजें, इस करने के लिए (Adobe Photoshop के भीतर इस तरह है: File -> Export -> Gif89a) 
छवि फ़ाइल के GIF छवि फ़ाइल प्रारूप में है ताकि Motorola T720 सेलुलर फोन decode करने के लिए और छवि के प्रदर्शन में सक्षम है होना चाहिए.  यदि छवि आयामों बिल्कुल 120 * 160, तो छवि बिल्कुल के Motorola T720 सेलुलर फोन के स्क्रीन पर फिट होगा रहे हैं; अन्यथा छवि दोनों पक्षों पर रिक्त सीमाओं होगा. 
नोट: मैं सफलतापूर्वक डाउनलोड की है और जो 118 * 120 पिक्सल, जो 120 * 160 की स्क्रीन आकार से छोटी है था एक *.gif छवि फ़ाइल में प्रदर्शित होता है.  मैं स्क्रीन के शेष भाग एक रंग छवि की सीमा से चयनित से भर जाता है लगता है.  शायद छवि के ऊपरी बाएँ में पिक्सेल की पिक्सेल रंग को खाली सीमाओं की छवि के दो पक्षों के लिए आसपास के रंग के रूप में प्रयोग किया जाता है. 
इस Motorola T720 सेलुलर फोन जो मैं 12-bit RGB (4-4-4) के रूप में कूटबन्धन है लगता है कि 4096 रंग, प्रदर्शित कर सकते हैं.  इसलिए, मुझे लगता है कि छोटे रंग gradients कि अवधि बड़े क्षेत्रों से बचा जाना चाहिए के साथ छवियों, क्योंकि इन gradients की सीमाओं बहुत ही स्पष्ट हो जाएगा और एक व्यक्ति की छवि को देख के लिए distracting.  इसके अलावा, GIF प्रारूप में ही केवल 256 अलग अलग रंग के लिए, ताकि एक व्यक्ति को इस सीमा से अवगत होने की भी जरूरत है सीमित है.  किसी भी मामले में, वह है हमेशा सर्वश्रेष्ठ बस एक छवि में सेलुलर फोन पर विचार करने का पता करने के लिए किया जाए या नहीं इस छवि को सेलुलर फोन के लिए उपयुक्त है. 
si.gif
Space Invaders (अंतरिक्ष आक्रमणकारियों): एक 120 * 160 GIF छवि

11.2 उस छवि GIF अपने इंटरनेट वेब सर्वर पर (*.gif) फ़ाइल

मैं एक GIF मेरे इंटरनेट वेब सर्वर के रूट निर्देशिका में "si.mid" नाम फ़ाइल की प्रतिलिपि बनाई.  तुम "Filezilla" जैसे FTP स्थानान्तरण सरल और सुविधाजनक बनाने के लिए सॉफ्टवेयर का उपयोग कर सकते हैं. 

11.3 डाउनलोड अपने फ़ोन सेवा की इंटरनेट सेवा के माध्यम से अपने मोबाइल फोन के लिए GIF फ़ाइल

इस Motorola T720 GSM/J2ME सेलुलर फोन के लिए, एक GIF छवि फ़ाइल डाउनलोड करने के "WebAccess" मेनू के साथ शुरू होता है.  है, URL के GIF फ़ाइल की टाइपिंग के बाद, "Go To URL" चुनना डाउनलोड शुरू होता है.  उदाहरण के लिए, मैं निम्नलिखित URL में टाइप:
http://www.colinfahey.com/si.gif
यदि डाउनलोड, और सफल रहा है अगर तुम एक Motorola T720 cellular phone का उपयोग कर रहे हैं, तो आपको अपने मोबाइल फ़ोन पर फ़ाइल भंडारण का विकल्प दिया जाएगा.  जब आप फ़ाइल को स्टोर करने का निश्चय करते, तो आप बस छवियों के अपने सेट में या भंडारण के बजाय मौजूदा पृष्ठभूमि होने के लिए फ़ाइल को स्थापित करने का विकल्प दिया जाता है (यानी, "वॉलपेपर)." 
निम्नलिखित छवियों को Motorola T720 GSM/J2ME सेलुलर फोन के लिए GIF छवि फ़ाइलें डाउनलोड करने की प्रक्रिया को संक्षेप में.  अन्य J2ME, अन्य सेलुलर फोन सेवा प्रदाताओं के साथ, एक ऐसी ही डाउनलोड प्रक्रिया है की संभावना है सेलुलर फोन enabled.  यदि आपका मोबाइल फोन सेवा प्रदाता Verizon, तो तुम भाग्य से बाहर हो जाता है, इस में से कोई काम करेंगे, और तुम जाना चाहिए और बंद फोन बाजार को नष्ट में मदद करने के लिए "एक "Android" फोन" खरीद! 
t720_screen_image_download.jpg
(1) WebAccess: इस "Go to URL" मद में जाओ. 
(2) Enter URL: एक इंटरनेट वेब साइट पर एक GIF छवि फ़ाइल (*.gif) के URL में टाइप करें. 
(3) Connecting: इस डाउनलोड के लिए शुरू करने के लिए रुको.  (यदि आप, तो इंटरनेट के वेब सर्वर GIF छवि के लिए एक उपयुक्त MIME प्रकार निर्दिष्ट नहीं किया "406: Not Acceptable" त्रुटि संदेश प्राप्त) (*.gif) files.) 
(4) पूर्वावलोकन डाउनलोड की छवि का, "STORE" करने के लिए विकल्प के सेलुलर फोन की स्मृति में (भंडार) छवि के साथ; 
(5) Store Options: The GIF छवि बस, या संग्रहीत किया जा सकता है, या मुख्य स्क्रीन के (पृष्ठभूमि) "चालू वॉलपेपर" बदलने के लिए यह एक स्क्रीन सेवर के रूप में (यानी, जो "दिखाई देगा एक" छवि का इस्तेमाल किया जा सकता है इस्तेमाल किया जा सकता है जब सेलुलर फोन बटन समय की एक निर्दिष्ट राशि के लिए) pressed नहीं किया गया है. 
(6) Changed: Wallpaper [image name]: यह बस वॉलपेपर छवि को "बदल दिया गया है" कि एक सूचना है. 
इस कमरे की दीवारों पर मढ़ने के बाद के सेलुलर फोन के मुख्य स्क्रीन के (7) "स्वरूप" (यानी, पृष्ठभूमि) छवि को बदल दिया गया है.  "स्पेस आक्रमणकारियों" मेरे मोबाइल फोन पर विजय प्राप्त की है! 

11.4 सेल्युलर फोन पर एक "स्क्रीन सेवर" के रूप में उपयोग के लिए एनिमेटेड GIF छवि

एक स्क्रीन सेवर छवि के रूप में आपके मोबाइल फोन पर "प्रयोग" करने के लिए "एक एनिमेटेड" GIF छवि को डाउनलोड करने के लिए, बस तैयार करने और एक छवि डाउनलोड करने के लिए इस दस्तावेज़ के पिछले भाग में दिए निर्देशों का पालन करें. 
यदि GIF छवि एक है, तो GIF animating को "स्क्रीन सेवर" इस एनीमेशन दिखाएगा है. 
बस स्क्रीन सेवर "छवि" के रूप में "छवि" के बाद छवि सेट डाउनलोड कर दिया गया है. 
निम्नलिखित एनिमेटेड GIF छवि को Motorola T720 GSM/J2ME सेलुलर फोन पर "एक एनिमेटेड स्क्रीन सेवर" छवि के रूप में इस्तेमाल किया जा सकता है. 
sun.gif
एक एनिमेटेड GIF छवि जो Motorola T720 GSM/J2ME सेलुलर फोन पर एक "animating स्क्रीन सेवर" छवि के रूप में इस्तेमाल किया जा सकता है.
दुख की बात है कि, इस Motorola T720 सेल्युलर फ़ोन को वॉलपेपर छवि "चेतन नहीं है."  यह बहुत सेल्युलर फ़ोन को खोलने के लिए जबरदस्त होता है और मुख्य स्क्रीन पर एक animating पृष्ठभूमि देख!  :^( 

आप केवल एक एनिमेटेड GIF देखेंगे कि Motorola T720 सेलुलर फोन पर जब फोन जो 30 सेकंड "की आवश्यकता हो सकती है" या अधिक शुरू करने के लिए स्क्रीन सेवर मोड, प्रवेश दिखाई देते हैं.  (आप एक के मेनू में इस देरी निर्धारित कर सकते हैं.)  स्क्रीन रोशनी को स्क्रीन सेवर appears से पहले बंद हो जाने की संभावना है.  इस "स्क्रीन सेवर" एक सक्रिय फोन कॉल के दौरान प्रकट नहीं होता है.  इसलिए, इन सभी तथ्यों पर विचार करने का है, Motorola T720 "सेलुलर" फोन के स्क्रीन सेवर सुविधा बल्कि लंगड़ा है. 

12. इस AT&T सेलुलर फोन नेटवर्क के लिए Motorola T720 GSM/J2ME सेलुलर फोन सेटिंग्स

12.1 परिचय

क्योंकि इस खंड एक बहुत विशिष्ट सेलुलर फोन (Motorola T720 GSM/J2ME) के लिए एक बहुत ही विशेष सेलुलर फोन सेवा प्रदाता (AT&T) के लिए एक बहुत विशिष्ट क्षेत्र (दक्षिणी कैलिफोर्निया) के लिए सेटिंग्स का वर्णन इस दस्तावेज़ का यह खंड किसी के लिए भी उपयोगी होने की, संभावना नहीं है.  हालांकि, मैं ऐतिहासिक हित के लिए इस जानकारी शामिल है. 

12.2 Web Sessions सेटिंग्स

Main Screen
  Main Menu
    More... (Not necessary if list view instead of icon view)
      Web Sessions
        mMode (NOTE: Do [New Entry] if no nMode entry)
          (*** Hit menu key, not LAUNCH! ***)
            Edit
              Name:           mMode
              Homepage:       http://home
              WAP IP 1:       10.250.250.250
              WAP Port 1:     9203
              WAP IP 2:       10.250.250.250
              WAP Port 2:     9203
              Timeout:        2 minutes
              CSD No. 1:      ____________ (blank)
              User Name 1:    ____________ (blank)
              Password 1:     ____________ (blank)
              Speed (Bps) 1:  9600
              Line Type 1:    ISDN
              CSD No. 2:      ____________ (blank)
              User Name 2:    ____________ (blank)
              Password 2:     ____________ (blank)
              Speed (Bps) 2:  9600
              Line Type 2:    Modem
              GPRS APN:       proxy
              User Name:      ____________ (blank)
              Password:       ____________ (blank)
साथ ही, वहाँ Java कार्यक्रमों के लिए एक DNS जमाव है:
Main Menu
  Settings
    Java Tools
      DNS IP:  10.250.1.10

12.3 टिप्पणियाँ

(1) 9201 के लिए WAP Port "संख्या सेट हो जाएगा" एक मास्टर रीसेट "करना" है, तो इन 9203 को परिवर्तित "किया" जाना चाहिए. 

(2) माध्यमिक WAP IP and Port एक ही IP और बंदरगाह प्राथमिक WAP सेटिंग्स के रूप में करने के लिए सेट कर दिया जाता है.  मैं किसी भी URL करने के लिए जाना) एक पूरी तरह से खाली माध्यमिक WAP सेटिंग के साथ (यानी, "mMode" का उपयोग करने में सक्षम था, लेकिन मुझे लगता है कि समय पर "Line Type 1: Modem" था.  अगर "ISDN" करने के लिए यह सेटिंग मैं नहीं जानता कि यह अधिक है कि माध्यमिक WAP सेटिंग्स उपयोग किया जाएगा संभावना बनाता है. 

(3) एक "मास्टर रीसेट" के "Timeout:" क्षेत्र "15 minutes" बनाता है.  "2 minutes" करने के लिए मूल्य बदलें. 

(4) इस "Name:", "Homepage:", और "GPRS APN:" खेतों सभी पत्रों और प्रतीकों में स्वयं को शामिल टाइपिंग. 

(5) खेतों जो कि उदाहरण के ऊपर में खाली सच में कोई पाठ नहीं करना है दिखाए जाते हैं में प्रवेश किया.  इस कारतूस आकस्मिक नहीं कर रहे हैं. 

13. कड़ियाँ अन्य सेलुलर फोन संसाधनों के लिए

13.1 Motorola J2ME SDK 3.0

Motorola एक सॉफ्टवेयर का विकास किट SDK कि एक emulator है, T720 सहित कई Motorola फोन की नकल की क्षमता भी शामिल है.  तुम आज़ाद के लिए इस SDK प्राप्त कर सकते हैं, और तुम फोन emulator का उपयोग करने के लिए CodeWarrior की जरूरत नहीं है कि SDK के साथ, इस Motorola वेब साइट पर CodeWarrior के सभी उल्लेख के बावजूद भी शामिल थे.  इसके अलावा, मैं तुम्हें द्वारा CodeWarrior या Motorola SDK के बिना भी यदि आप T720 के लिए व्यावसायिक विकास कर रहे हैं मिल सकती है लगता है कि आम में.

तुम Motorola के साथ भी उनके J2ME SDK के बारे में जानने के लिए, रजिस्टर करना होगा अकेले इसे डाउनलोड करते हैं. 

http://kb.motorola.metrowerks.com/motorola/developmentTools.do

वहाँ और भी "*.wav" फ़ाइलें "Compact MIDI" खेल के लिए कुछ कार्य कर रहे हैं.  Install और पढ़ अधिक विवरण जानने के लिए इस प्रलेखन. 
यहाँ मैं एक ईमेल में प्राप्त एक टिप्पणी है:
इस Motorola J2ME SDK के emulator के लिए skins अन्य चीजों "() के बीच में," जिससे कि emulator आप के लिए प्रोग्रामिंग हो फोन तरह दिखेगा तुम्हें देता है.  यह अंगराग से भी अधिक है.  स्क्रीन का आकार उदाहरण के लिए, इसलिए अगर आपको लगता है कि लक्ष्य से मेल खाता है एक emulator है जहाँ स्क्रीन का आकार मायने रखती है, यह निश्चित रूप से मदद मिलती है कुछ डिजाइनिंग हो भिन्न हो सकती हैं.  इस SDK भी कुछ Motorola के Lightweight Windowing Toolkit है कि आप कुछ तुम एक असली UI के साथ एक आवेदन पत्र बनाने के लिए - विभिन्न UI widgets क्या जरूरत के दे बुलाया खुला Java वर्ग बनाया शामिल हैं. 

आप के द्वारा प्राप्त कर सकते हैं बिना यह है, लेकिन अगर तुम तुम शायद यह है चाहता हूँ हूँ गंभीर काम कर रहे थे.  अगर मैं Sony Ericsson या Nokia या किसी अन्य फ़ोन के लिए सामान बनाने था, मैं भी उनके SDKs चाहता हूँ. 
यहाँ Motorola's वेब साइट से एक उद्धरण उनके SDK के संबंध में है:
इस J2ME™ मंच के लिए Motorola Software Development Kit (SDK) एक उपकरण का विकास और कार्यक्रमों के Java प्रोग्रामिंग भाषा में लिखा के परीक्षण के लिए इस्तेमाल किया जाता है.  इस SDK है कि यह आसान ने Motorola J2ME™ डिवाइस emulator का उपयोग कर MIDlets (J2ME™ Programs) लांच करने के लिए आवेदन करना भी शामिल है.  एक साथ इन उपकरणों आप को विकसित करने के लिए और एक लक्ष्य युक्ति करने के लिए उन्हें डाउनलोड करने से पहले अनुकरण में अपने J2ME™ programs debug की अनुमति देते हैं.  इस Motorola SDK Metrowerks' CodeWarrior™ Wireless Studio, Professional Edition, Version 7 में एकीकृत किया जा सकता है. 

इस SDK का यह संस्करण प्रदर्शन और स्थिरता के लिए कई विस्तार भी शामिल हैं.  सभी पिछले संस्करण की कार्यक्षमता की, इन नई सुविधाओं के साथ समर्थित है: 

इस नए संस्करण द्वारा समर्थित हैंडसेट: A830. 

नई functionality इस संस्करण द्वारा समर्थित: 

A830 - गेमिंग API, सीरियल पोर्ट कनेक्टिविटी है, HTTPS प्रोटोकॉल का समर्थन करते हैं.
All devices - बेहतर ग्राफिक्स प्रदर्शन

इस SDK निम्नलिखित युक्तियों का समर्थन करता है:
*Motorola Accompli (008/6288 and 388)™
*Motorola T280i
*Motorola T720
*Motorola v60i
*Motorola v66i
*Motorola iDEN i1000
*Motorola iDEN Platform
*Motorola StarTAC™
*Motorola i85s

13.2 Sun ONE Studio 4 update 1, Mobile Edition

मेरे एक दोस्त ने जाहिरा तौर पर कोई समस्या नहीं डाउनलोड की थी और इस Toolkit का उपयोग कर - जो कि जाहिरा तौर पर क्या आप JAD, आदि बनाने के लिए (JDK, MIDP, CLDC) और अतिरिक्त उपकरण की जरूरत है सब कुछ देता है  खुद की कोशिश की नहीं मैं है.  यहाँ इस Toolkit पर अन्य टिप्पणियाँ हैं: 
एक Slashdot पोस्टिंग से उद्धरण: 
तुम खुद को कुछ परेशानी सभी अलग उपकरणकिटें स्थापित करने को बचा सकते थे.  अभी डाउनलोड [sun.com] Sun ONE Studio 4 update 1, Mobile Edition, अपने को पूरी तरह से मुक्त (बियर के रूप में), और एक महान समन्वित विकास पर्यावरण 20 MB (बारे में डाउनलोड) है.  सभी उपकरणों, emulators और demos लेख से bundled रहे हैं.  मैं RH Linux 7.2 के तहत यह दौड़ रहा हूँ पिछले हफ्ते, 512mb ram (YOU NEED LOTS OF RAM!!!) के साथ चूंकि. 

आगे के लिए debugger में कृमि खेल के माध्यम से regestration स्क्रीन लंघन से लगा सिर्फ एक मिनट [sun.com]  (मैं हमेशा / साँप / nibbles अपने सभी incarnations में, और डेमो संस्करण प्रदान खेल कीड़ा प्यार खूबसूरती क्रमादेशित है - लेकिन उद्देश्य उन्मुख और बहु सरल-कोड की एक छोटी राशि में लड़ी पिरोया). 

आप डाउनलोड करने के लिए पंजीकृत करने की आवश्यकता है.  समर्थित प्लेटफार्मों: Linux, Windows, Solaris.
एक Slashdot पोस्टिंग से उद्धरण:
इस sun डाउनलोड faq [sun.com] से: 
"हमारे डाउनलोड सेवा सत्र प्रबंधन संभालती है जिस तरह की वजह से, आप लिंक पर फिर ब्राउज़र विंडो में क्लिक करके आंशिक डाउनलोडों को फिर से शुरू नहीं कर सकते.  बल्कि, आप प्रयोग कर रहे हैं डाउनलोड मैनेजर प्रोग्राम खुला और डाउनलोड प्रबंधक स्वयं के भीतर से डाउनलोड को फिर से शुरू.

हम हमारे इंजीनियरों के साथ और अधिक प्लेटफार्मों पर अधिक डाउनलोड प्रबंधकों के लिए समर्थन सक्षम करने के लिए काम जारी है.  अभी के लिए, तथापि, किसी भी अन्य डाउनलोड प्रबंधकों और उपयोगिताओं यदि आप डाउनलोड समस्याओं हो रही है बारी से दूर कृपया."
linux के नीचे से sun बड़ी फ़ाइलों को डाउनलोड किया गया सचमुच के लिए लगभग एक वर्ष अब मुश्किल है.  एकमात्र डाउनलोड मैनेजर हाल ही में जब तक मैं गया काम करने को मिल था DAP windows के अधीन (चेतावनी: Spyware) था.  Sun's के साथ [निष्ठाहीनता सौदा नहीं कर सकेंगे मूलतः सबसे डाउनलोड प्रबन्धक (prozgui, getright, opera)].  Ludicrously के बजाय अपनी वेबसाइट सिर्फ काम करने के लिए ठीक, Sun उनके अपने डाउनलोड मैनेजर [sun.com] लिखा है.  इसके java में है, और अपने ही छोटे 140KB लिखा!  इस आश्चर्यजनक बात यह है कि यह एक वास्तव में उत्कृष्ट डाउनलोड मैनेजर, छोटे पदचिह्न, नहीं ब्राउज़र अपहरण, कोई adware / spyware है, किसी भी OS के तहत, स्वचालित फ़ाइल सत्यापन, स्वत: unzips, और ठोस एक चट्टान के रूप में काम करता है 

13.3 यादृच्छिक मंच पोस्ट:

इस Jad और Jar फ़ाइलों को केवल फ़ाइलें एक फोन पर एक आवेदन को चलाने के लिए आवश्यक हैं और, फोन पर निर्भर करता है और इस विधि तुम फोन करने के लिए app स्थानांतरित कर रहे हैं, तो आप केवल jar की आवश्यकता हो सकती है. 

यदि आवेदन कर रहे हैं Over the Air (OTA), एक वेब URL के माध्यम से, आप एक पृष्ठ फोन (wml, cHtml, cHtml उदा द्वारा पठनीय पर एक लिंक बनाने के लिए) के JAD फ़ाइल करने की आवश्यकता होगी IE भेजा जाएगा.  OTA डाउनलोडों के लिए आप भी अपने वेब सर्वर jar और jad फ़ाइल प्रकार संभाल करने के लिए स्थापित करने की आवश्यकता होगी.  apache में आप httpd.conf फ़ाइल में निम्नलिखित लाइनें जोड़ने की जरूरत है: 

AddType text/vnd.sun.j2me.app-descriptor jad 
AddType application/java-archive jar 

इसके अलावा, क्या तुम्हें यकीन है कि jar फ़ाइल के लिए URL सर्वर पर JAR फ़ाइल के लिए URL, न कि स्थानीय URL है बनाने के लिए की आवश्यकता होगी 

तुम IR, Bluetooth या एक केबल आप के द्वारा सिर्फ फोन करने के लिए, फाइल स्थानांतरण करने के लिए स्थापित और चलाने की जरूरत है स्थानान्तरण चाहते दूसरी ओर यदि.  इस JAD फ़ाइल आमतौर पर विशेष रूप से फोन जानकारी OTA डाउनलोड और जैसे, इस Nokia 7650 और कुछ अन्य मॉडलों आप केवल गैर के लिए jar file-OTA स्थानान्तरण हस्तांतरण करने की आवश्यकता के लिए आवश्यक प्रदान करने के लिए प्रयोग किया जाता है. 

13.4 http://wireless.java.sun.com/midp/questions/sar/

SAR (या WTP-SAR) Segmentation and Reassembly के लिए खड़ा है.  यह WAP के भीतर Wireless Transaction Protocol (WTP) का एक वैकल्पिक सुविधा है.  SAR एक WAP प्रवेश द्वार के लिए आप हैं, उदाहरण के लिए) छोटे विखंडू में और (इस विभाजन) डाउनलोड कर रहे हैं इस फ़ोन के लिए एक साथ वापस यह टुकड़ा करने के लिए फ़ाइल (एक JAR एक बड़े संदेश को तोड़ने के लिए एक विधि को परिभाषित करता है (reassembly). 

नहीं सभी फोन SAR का उपयोग करते हैं, लेकिन सबसे एक WAP प्रवेश द्वार के माध्यम से वेब सर्वर का उपयोग करेगा.  जबकि Motorola एक समय में एक फ़ाइल का एक छोटा सा हिस्सा पुनः प्राप्त करने के लिए है और फिर इसे reassemble HTTP 1.1 की सुविधाओं का उपयोग करता है Nokia, SAR का उपयोग करता है. 

एक समस्या यह है कि WAP gateways चिंताओं MIME प्रकार के साथ वेब सर्वर के द्वारा वापस आ खड़ी होती है.  अगर एक JAD या JAR फ़ाइल और सर्वर गलत स्थानान्तरण संभाल लेंगे गलत MIME प्रकार, इस प्रवेश द्वार और बाद में फोन रिटर्न एक उपयोगकर्ता अनुरोधों.  , निम्नलिखित MIME प्रकार का उपयोग करें MIDlets के समुचित डाउनलोड सुनिश्चित करने के लिए: 

text/vnd.sun.j2me.app-descriptor jad 
application/java-archive jar 

13.5 यादृच्छिक मंच पोस्ट

तुम सर्वर पर सही MIME सेटिंग्स है करने के लिए किया है कि स्टोर .JAD/.JAR files.  कि तुम डाउनलोड क्षुधा करने के लिए अपनी डिवाइस कर सकेंगे के बाद.  (आवश्यक) WA प्रोटोकॉल का उपयोग नहीं कर कृपया ध्यान में रखना है कि: - इस प्रक्रिया के बदले उपकरण विशिष्ट है  - क्या तुम बेहतर .JAD करने के लिए निरपेक्ष पथ होता है और .JAR (IE http://www.fooserver.com/repository/JoeDoeApp.JAD सेट) 

13.6 यादृच्छिक मंच पोस्ट

इस Siemens उपकरणों में से कम से कम, तुम Java है, जो कि WAP और GPRS से अलग है के लिए एक विशिष्ट विन्यास है.  तुम WAP के माध्यम से, पर नेविगेट कर सकते हैं जब एक midlet, एक अलग सेटअप स्वतः डाउनलोड पूरा करने के लिए बदल जाता है पाया जाता है.  इस M50 आसान में, आप अपने प्रदाता के मापदंडों के अनुसार Java प्रोफाइल सेट करने के लिए है; में c55 आसान, एक ही सेट "HTTP profile" कहा जाता है और यह भी midlet में डाउनलोड करें (जैसे, http कनेक्शन के अन्य प्रकार के लिए प्रयोग किया जाता है) . 

13.7 उन्नत midlet सामान हस्ताक्षर पर विविध दिलचस्प लिंक्स

http://wirelesssoftware.info/midp_2.0/javax/microedition/midlet/doc-files/PKIAppendix.html

13.8 बहुत ठंडा midlet प्रोग्रामिंग परिचय

http://wireless.java.sun.com/midp/articles/getstart

13.9 http://wireless.java.sun.com/midp/articles/deploy/

दूर से अपने वायरलेस अनुप्रयोगों को तैनात करने के लिए: 

एक दूरदराज के वेब सर्वर पर अपलोड करें आपके आवेदन की फ़ाइलें (JAD और JAR).  यदि आपके परियोजना के खेल का नाम है, उदाहरण के लिए, अपनी परियोजना के घर के bin निर्देशिका (उदाहरण के लिए से फ़ाइलें हैं: games.jad और games.jar अपलोड, <toolkit>/apps/games/bin).  यह है कि दो फ़ाइलों के सर्वर पर एक ही निर्देशिका में समाप्त होना चाहिए ध्यान दें. 

Reconfigure वेब सर्वर इतना है कि यह फाइल JAD और JAR को मान्यता देते हैं: 

इस JAD फ़ाइल प्रकार के लिए, .jad करने के लिए और text/vnd.sun.j2me.app-descriptor करने के लिए MIME प्रकार फ़ाइल एक्सटेंशन निर्धारित किया है. 

इस JAR फ़ाइल प्रकार के लिए, .jar करने के लिए और application/java-archive करने के लिए MIME प्रकार फ़ाइल एक्सटेंशन निर्धारित किया है. 

तुम कैसे configure वेब सर्वर निर्भर करता है जिस पर आप एक का उपयोग कर रहे हैं.  उदाहरण के लिए, यदि आप, आपके web.xml फ़ाइल में निम्नलिखित लाइनें शामिल हैं सुनिश्चित करें कि Tomcat का प्रयोग कर रहे हैं: 

<mime-mapping> 
<extension>jad</extension> 
<mime-type>text/vnd.sun.j2me.app-descriptor</mime-type> 
</mime-mapping> 
<mime-mapping> 
<extension>jar</extension> 
<mime-type>application/java-archive</mime-type> 
</mime-mapping> 


आपके JAD फ़ाइल है MIDlet-Jar-URL संपत्ति बदलें अपने JAR फ़ाइल के URL निर्दिष्ट करने के लिए.  उदाहरण के लिए, games.jad के तुम सर्वर, बदलने के लिए अपलोड की कॉपी में ... 

MIDlet-Jar-URL: games.jar 

...  करने के लिए ...

MIDlet-Jar-URL: http://YourWebServerAddress:port/pathTo/games.jar 

13.10 विविध लिंक

http://www.microjava.com/articles/techtalk/midp?PageNo=3 
http://www.corej2me.com/DeveloperResources/sourcecode/general/multipleMIDlets/index.shtml 

13.11 Nokia J2ME प्रोग्राम विकास लिंक्स

एक Nokia साइट से:
Nokia's J2ME कार्यान्वयन उद्योग मानक के MIDP 1.0 और CLDC 1.0 शामिल है.  मंच ने Nokia User Interface (UI) API द्वारा बढ़ाया है.  ऐसा लगता है कि CLDC 1.0 या MIDP 1.0 द्वारा निर्दिष्ट नहीं है कुछ बुनियादी फोन कार्यक्षमता के लिए आवेदन डेवलपर्स पहुँच देता है.  इस Nokia UI API सरल ऑडियो क्षमताओं, कंपन, प्रदर्शन प्रकाश व्यवस्था, साथ ही कुछ ग्राफिक्स-विस्तार संबंधित तक पहुँच प्रदान करता है. 
मैं प्राप्त एक ई मेल संदेश से:
तो Nokia इसे कस्टम संशोधन की आप के बारे में सोच सकते हैं किसी भी प्रकार के लिए फोन है सच में खोलने जा रही है.  तुम java खेलों के लिए है, तुम ले चित्रों के लिए, और वास्तव में अपलोड pics आपकी साइट पर कार्टून बुलबुले जोड़ने के कंपन जोड़ सकता है!  आप अपने खुद के सर्वर लिख सकता है, और आप के लिए लोगों को अपलोड कर सकता सामान! 
यहाँ कुछ ठंडा 7650 लिंक हैं:
DOOM के 7650!!  पर: http://www.wildpalm.co.uk/Doom7650.html 
इस 7650 पृष्ठ: http://www.nokia.com/nokia/0,1522,,00.html?orig=/phones/7650/index.html 
Nokia J2ME FAQ: http://www.nokia.com/nokia/0,5184,2776,00.html 
डाउनलोड SDKs, J2ME tutorials, और अधिक: http://www.forum.nokia.com 

13.12 सेलुलर फोन कार्यक्रम लिंक्स

(1) http://midlet.org 
(2) http://spruce.jp/freemidlets 
(3) http://www.gameloft.com 
(4) http://www.microjava.com 

14. J2ME बनाम BREW

14.1 परिचय

वहाँ मोबाइल उपकरणों के लिए दो प्रमुख सॉफ्टवेयर प्लेटफार्मों: J2ME और BREW रहे हैं.  कई सेलुलर फोन वाहक J2ME समर्थन के साथ फोन की पेशकश करने के लिए: निर्णय लिया है AT&T, T-Mobile, और Sprint.  एक प्रमुख वाहक केवल BREW समर्थन के साथ फोन की पेशकश करने के लिए: Verizon का निर्णय लिया है. 

कि J2ME लेकिन J2ME programs निष्पादित कर सकते हैं BREW कार्यक्रमों को अंजाम नहीं दे सकते समर्थन करता है एक मोबाइल डिवाइस.  कि BREW programs BREW निष्पादित कर सकते हैं समर्थन करता है एक मोबाइल डिवाइस है, लेकिन J2ME programs निष्पादित नहीं कर सकते. 

मोबाइल उपकरणों के निर्माता अक्सर कई संस्करणों विभिन्न वायरलेस प्रसारण मानकों के आधार पर प्रदान करते हैं.  उदाहरण के लिए, Motorola के T720 के दो संस्करणों: GSM और CDMA प्रदान करता है.  Coincidentally है, T720 के GSM संस्करण, और T720 के CDMA संस्करण programs J2ME का समर्थन करता है अनुप्रयोगों BREW समर्थन करता है.  इस प्रकार, हालांकि वायरलेस प्रसारण मानकों को तकनीकी फोन operating systems, बाजार में परिस्थितियों से संबंधित नहीं हैं इस दुर्घटना से होने वाली सहसंबंध करने के लिए नेतृत्व किया है. 

14.2 सेलुलर फोन सेवा प्रदाताओं एक ग्राहक एक सेलुलर फोन डिवाइस के साथ क्या कर सकते फैसला

यहाँ सेलुलर फोन सेवा प्रदाताओं ग्राहकों को क्या करने की अनुमति का सार है: 
[A]  AT&T :
   [1] J2ME Applications:
         Download from any site on the Internet, Over The Air (OTA);
   [2] GIF Files (Images):
         Download from any site on the Internet, Over The Air (OTA);
   [3] MIDI Files (Ring Tones):
         Download from any site on the Internet, Over The Air (OTA);
   [4] Data Cable:
         Cannot (officially) be used to transfer files;

[B] Verizon :
   [1] BREW Applications:
         Download for a fee through Get It Now! (GIN), Over The Air (OTA);
   [2] GIF Files (Images):
         Download for a fee through Get It Now! (GIN), Over The Air (OTA);
   [3] MIDI Files (Ring Tones):
         Download for a fee through Get It Now! (GIN), Over The Air (OTA);
   [4] Data Cable:
         Cannot (officially) be used to transfer files;

[C] Sprint :
   [1] J2ME Applications:
         **** UNKNOWN ****
   [2] GIF Files (Images):
         Download from any site on the Internet, Over The Air (OTA);
   [3] MIDI Files (Ring Tones):
         Download from any site on the Internet, Over The Air (OTA);
   [4] Data Cable:
         Cannot (officially) be used to transfer files;

[D] T-Mobile :
   [1] J2ME Applications:
         Download for a fee through T-Mobile's service, Over The Air (OTA);
   [2] GIF Files (Images):
         **** UNKNOWN ****
   [3] MIDI Files (Ring Tones):
         **** UNKNOWN ****
   [4] Data Cable:
         Cannot (officially) be used to transfer files;
AT&T और सेलुलर फोन उपकरणों का उपयोग करने के लिए डेवलपर और मल्टीमीडिया फ़ाइलों को इंटरनेट पर सबसे अच्छा ग्राहक प्रदान करता है.  जाहिर है, AT&T अपने नेटवर्क के माध्यम से bytes परिवहन के व्यवसाय पर ध्यान केंद्रित करने के लिए, बजाय फैसला किया है मल्टीमीडिया सामग्री बेचने के कारोबार में होने का प्रयास. 

Verizon उन सब का सबसे दमनकारी सेलुलर फोन सेवा प्रदाता है.  जो कृत्रिम मल्टीमीडिया सामग्री बेचने के व्यापार को बचाने के लिए अपने स्वयं के सेलुलर फोन उपकरणों के उपयोग को सीमित ग्राहक शामिल है उनकी "Get It Now."  व्यापार मॉडल,, Verizon के साथ अपने अनुबंध समाप्त करने के लिए या "Get It Now."  पोर्टल बाईपास के तरीके ढूँढ बहुत निराश ग्राहकों को प्रेरित किया है.  क्योंकि ग्राहकों को आसानी से वहाँ प्रतिस्पर्धा करने के लिए उपयोग का अभाव है) उन परिस्थितियों (IE में, भोजन के वैकल्पिक स्रोतों का उपयोग नहीं कर सकते फिल्मी थिएटर और खेल Arenas बस के रूप में, Verizon मल्टीमीडिया करने के लिए पहुँच के लिए अत्यंत उच्च मूल्यों को चार्ज कर सकते हैं फ़ाइलों को भोजन के लिए अत्यंत उच्च मूल्यों को चार्ज कर सकते हैं और सॉफ्टवेयर प्रोग्राम के कारण ग्राहकों को आसानी से मल्टीमीडिया फ़ाइलें और सॉफ्टवेयर प्रोग्रामों के लिए वैकल्पिक स्रोतों का उपयोग नहीं कर सकते. 

14.3 Binary Runtime Environment for Wireless (BREW)

BREW "Binary Runtime Environment for Wireless, एक मालिकाना सॉफ्टवेयर मंच QUALCOMM द्वारा विकसित की है.  , निम्नलिखित इंटरनेट साइट पर जाएँ BREW के बारे में अधिक जानने के लिए: 

http://www.qualcomm.com/brew

इस SDK Qualcomm से डाउनलोड किया जा सकता है.  2002 में, SDK, और सॉफ्टवेयर का प्रयोग कर Microsoft Visual C++ 6.0 बनाने के लिए इस कार्यक्रम एक सेलुलर फोन करने के लिए एक परीक्षण के बिना हस्ताक्षर का तबादला हो सकता है "इस्तेमाल किया जा सकता है." 

Verizon अनुबंधों के साथ सभी फोन BREW का उपयोग करें.  सारे सॉफ्टवेयर, छवियाँ, और संगीत Verizon's "Get It Now."  पोर्टल के माध्यम से, और स्थानांतरित किया जाना चाहिए आमतौर पर नेटवर्क बैंडविड्थ की लागत से परे फीस का भुगतान शामिल है. 

14.4 Java 2 Platform, Micro Edition (J2ME)

J2ME "Java 2 Platform, Micro Edition", एक "उच्च अनुकूलित" Java runtime वातावरण है.  , निम्नलिखित इंटरनेट साइट पर जाएँ J2ME के बारे में अधिक जानने के लिए: 

http://java.sun.com/j2me

क्या आप पहले से ही कुछ Java प्रोग्रामिंग किया होगा.  J2ME की कक्षाओं Java डेस्कटॉप कंप्यूटर प्रोग्राम के लिए इस्तेमाल के कई शामिल हैं.  जाहिर है, जो शुद्ध Java कोड रहे हैं किसी भी Java वर्गों, और किसी भी हार्डवेयर पर निर्भर नहीं है या प्रणाली कार्य संचालन, किसी भी Java आभासी मशीन के संदर्भ के भीतर पूरा करने को कहा संकलित किया जा सकता है. 

एक व्यक्ति सूत्र, Sockets बना सकते हैं, ग्राफिक्स canvases, etc, बहुत आसानी से.  एक व्यक्ति को केवल एक *.JAR फ़ाइल (और संभवतः एक *.JAD file) डाउनलोड करने के लिए एक सेलुलर फोन पर एक अनुप्रयोग स्थापित करने की जरूरत है. 

इस Java SDK डाउनलोड कर मुक्त है.  Java के लिए प्रलेखन संपूर्ण है.  लाखों लोग Java के लिए कोड का विकास किया है.  वहाँ कई इंटरनेट फोरम Java प्रोग्रामिंग के विभिन्न पहलुओं पर चर्चा कर रहे हैं. 

इंटरनेट खोज का मात्र मिनट में, मैं, दिलचस्प सॉफ्टवेयर प्रोग्राम के सैकड़ों पाया और छवियों, और ध्वनि प्रभाव, सभी Motorola T720 GSM/J2ME सेलुलर फोन के लिए - और सभी फ़ाइलें लागत डाउनलोड करने के लिए कुछ भी नहीं है. 

मैं बहुत मेरी संपत्ति की multimedia पहलुओं का पूरा फायदा (यानी, मेरे सेलुलर फोन ले जाने में सक्षम किया जा रहा द्वारा) कुछ भी उनके सेलुलर फोन नेटवर्क के उपयोग से भी अधिक के लिए मेरे सेलुलर फोन सेवा प्रदाता भुगतान करने के लिए बिना उत्साहित हूँ. 

14.5 मेरे BREW और Verizon हॉरर कहानी

मैं दोनों J2ME और BREW प्लेटफार्मों, और के लिए, मेरी राय में, मैं दोनों प्रौद्योगिकियों को अपने फायदे और नुकसान हैं, लगता है और दोनों काफी में सक्षम हैं बहुत आसानी से परिष्कृत कार्यक्रम बनाने के लिए इस्तेमाल किया जा रहा सॉफ्टवेयर बनाया है. 

हालांकि, एक व्यवसाय है कि बनाने और सेलुलर फोन के लिए सॉफ़्टवेयर बेचने में एक भी प्रश्न: यदि मैं सॉफ्टवेयर के विकास पर विचार द्वारा शुरू "करना चाहिए, मैं इसे बेचने की अनुमति दी जाएगी दिलचस्पी है?" 

अगर एक व्यवसाय के J2ME मंच के लिए है, तो सबसे सेलुलर फोन सेवा प्रदाताओं ग्राहकों को किसी भी इंटरनेट साइट के पास जाना होगा और किसी भी J2ME सॉफ्टवेयर डाउनलोड, सेल्युलर फ़ोन नेटवर्क के माध्यम से bytes स्थानांतरित की लागत से परे किसी भी कीमत लगाने की अनुमति के बिना सॉफ्टवेयर विकसित.  इस प्रकार, एक सॉफ्टवेयर का विकास व्यापार संभावित ग्राहकों तक पहुँच करने के लिए सक्षम होने के लिए, और कुछ है ग्राहकों से किसी भी सॉफ्टवेयर खरीद के लिए पैसे इकट्ठा करने के लिए उनकी अपनी व्यवस्था कर सकते हैं. 

अगर एक व्यवसाय के BREW मंच के लिए सॉफ्टवेयर विकसित है, तो Verizon का फैसला किया जाए या नहीं सॉफ्टवेयर ग्राहकों को बिक्री के लिए उपलब्ध होगी.  इसके अलावा, Verizon के विशेषाधिकार के लिए इस सॉफ़्टवेयर की बिक्री मूल्य का एक बड़ा प्रतिशत निकालने जाएगा उनके अनन्य पोर्टल के माध्यम से सॉफ़्टवेयर बेचने के लिए अनुमति दी जा रही है. 

यहाँ मेरी BREW और Verizon डरावनी कहानी है: 

मैं सेलुलर फोन के लिए एक सॉफ्टवेयर प्रोग्राम के लिए एक समय था जब सेलुलर फोन शुरु कर रहे थे पर BREW और J2ME कार्यक्रमों पर अमल करने के लिए सक्षम होने के लिए एक अनूठा विचार था.  क्योंकि मुझे पता है कि मैं बना सकता है विश्वास और इन प्लेटफार्मों के लिए लंबे समय से पहले किसी भी प्रतियोगियों एक इसी तरह के उत्पाद बनाने के लिए तैयार हो जाएगा एक अनूठा कार्यक्रम प्रकाशित मैं बहुत उत्साहित थी.  मुझे लगता है कि मैं आखिर कि मुझे अमीर बना देगा मेरे जीवन में कुछ कर सकता है आश्वस्त था.  तो, मैं अपनी नौकरी छोड़ और मेरे सॉफ्टवेयर विचार का एक BREW संस्करण पर काम करना शुरू कर दिया.  कड़ी मेहनत के छह महीने, और कोई आय के बाद, मैं अपने BREW कार्यक्रम के साथ समाप्त हो गया था!  मैं Qualcomm करने के लिए परीक्षण के लिए इसे प्रस्तुत करने के लिए तैयार था. 

कि जब मैं एक horrifying खोज कर दिया है: यदि मेरे प्रोग्राम गुणवत्ता आश्वासन परीक्षण पारित, Verizon मेरे सॉफ्टवेयर की बिक्री का अनुमोदन करने के लिए होता है - और Verizon किसी भी कारण के स्पष्ट कारणों (परे के लिए अपने सॉफ़्टवेयर के अस्वीकृत कर सकता है या आक्रामक किया जा रहा Verizon's व्यापार के कुछ अन्य पहलू के साथ प्रतियोगिता में).  मैं बस इस संभावना की कल्पना नहीं की थी.  सब कुछ मैंने BREW विकास के बारे में है कि इस चुनौती गुणवत्ता आश्वासन परीक्षण पास करने के लिए गया था गर्भित पढ़ें.  मैं किसी भी जरूरत है कि सॉफ्टवेयर को सेलुलर फोन सेवा प्रदाताओं द्वारा अनुमोदित करने का उल्लेख किया पढ़ कुछ भी नहीं.  मुझे लगता है कि सेलुलर फोन सेवा प्रदाताओं को अप्रिय या दुर्भावनापूर्ण प्रोग्राम्स को बेचने में नहीं, बल्कि चुन सकते हैं इस तरह के विचारों तो मेरी विशेष परियोजना कि मैं अधिक सामान्य अवधारणा के बारे में है कि सेलुलर फोन सेवा प्रदाताओं पर चुन सकते हैं नहीं सोचा के लिए महत्वहीन लग रहा था जानने के लिए आश्चर्य नहीं होता साधारण सॉफ्टवेयर प्रोग्रामों को नहीं बेच करने के लिए! 

अगर Verizon अपने नेटवर्क पर बिक्री के लिए अपने सॉफ़्टवेयर को स्वीकार करेगा जो पहले से ही Verizon के माध्यम से कई वीडियो गेम programs बेचा था मेरे दोस्तों, के, एक Verizon प्रतिनिधि कहा ...  Verizon को प्रतिनिधि ने कहा: "नहीं," क्योंकि वहाँ है कि व्यापक शैली में पहले से ही कुछ अन्य सॉफ्टवेयर प्रोग्रामों थे.  मेरे सॉफ्टवेयर एक शब्दावली ट्यूटर को SAT और GRE मानकीकृत परीक्षण के लिए विशेष विचार () के साथ है, लेकिन था Verizon प्रतिनिधि है कि शब्द का खेल शैली पहले से ही, कार्यक्रमों को "ले आओ" में कुल तथ्य यह है कि वहां 10 शब्द से कम थे संबंधित होने के बावजूद भीड़ "ने" कहा कि "यह अब!," और दूसरे कार्यक्रमों में बहुत अलग थे (, crossword जैसे पहेलियाँ, "Scrabble", "Boggle", आदि) पोर्टल.  मेरे प्रोग्राम एक तकनीकी उपलब्धि थी: यह, साथ समानार्थक शब्द और antonyms के साथ, और शब्द का अर्थ समूहों (ताकि प्रश्नोत्तरी प्रश्न) चुनौतीपूर्ण होगा, कि 1 MB से भी कम था एक कार्यक्रम में 5000 शब्दावली शब्दों की परिभाषा संग्रहीत.  मेरे प्रोग्राम किया गया बाजार पर कई महीनों के लिए, और वर्षों के एक जोड़े को सम्भावित के लिए अद्वितीय होगा. 

मैं, उदास, और गुस्सा था आर्थिक रूप से तोड़ दिया.  काम के छह महीने, सभी क्योंकि Verizon केवल कि उनकी बिक्री पोर्टल में हजारों प्रतियां बेचने के लिए कुछ था सॉफ्टवेयर चाहते थे, और Verizon प्रतिनिधि मेरे सॉफ्टवेयर एक उच्च बिक्री संभावित था नहीं सोचा बर्बाद हो गया. 

यहाँ मैं इस कड़वे अनुभव से सीखा सबसे महत्वपूर्ण सबक है:  काम शुरू करने से पहले एक व्यवसाय योजना के प्रत्येक भाग की जाँच करें.  (आदर्श रूप में, व्यापार योजना के प्रत्येक भाग के बार बार, विभिन्न महत्वपूर्ण प्रक्रियाओं के वास्तविक निष्पादन के द्वारा, से पहले और प्रयास के उत्पाद बनाने के लिए परीक्षण के दौरान हो सकता है.) 

मैं इससे पहले कि मैं इस सॉफ्टवेयर को विकसित करने के लिए शुरू की है या कि क्या वहाँ मेरा सॉफ्टवेयर बेचने के लिए किसी भी संभावना बाधा होगी नहीं जाँच होनी चाहिए.  मुझे लगता है कि Verizon मुझे मेरी सॉफ्टवेयर बेचने के लिए अनुमति नहीं करने के लिए चुन सकता है की खोज की जाती. 

मैं एक दूसरा सबक सीखा:  जिसमें अन्य लोगों की क्षमता या न तुम ग्राहकों तक पहुँच को निर्धारित करने के लिए है स्थितियों से बचें! 
colinfahey.com
संपर्क जानकारी
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية