首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

如何將多個 MIDlet 打包進單一 JAR 檔案

     編輯:J2ME

概述

在 J2ME 開發中,可以將多個 MIDlet 程式封裝在同一個 JAR 檔案中。裝置會自動顯示一個 MIDlet 選單,讓使用者選擇要執行哪一個 MIDlet。本文提供完整範例,包含兩個簡易 MIDlet 的原始碼、Manifest 檔案、JAD 描述檔、圖示檔案,以及用於編譯、預驗證、建立 JAR 的 DOS 批次檔。

原始碼範例 1:Simple MIDlet 1

/*----------------------------------------------------
 * Simple MIDlet 1
 *---------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MIDlet1 extends MIDlet implements CommandListener {
    private Display display;
    private TextBox tbxMain;
    private Command cmdExit;

    public MIDlet1() {
        display = Display.getDisplay(this);
        cmdExit = new Command("Exit", Command.SCREEN, 1);
        tbxMain = new TextBox("Welcome", "Core J2ME", 50, 0);
        tbxMain.addCommand(cmdExit);
        tbxMain.setCommandListener(this);
    }

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

    public void pauseApp() { }

    public void destroyApp(boolean unconditional) { }

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

原始碼範例 2:Simple MIDlet 2

/*----------------------------------------------------
 * Simple MIDlet 2
 *---------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MIDlet2 extends MIDlet implements CommandListener {
    private Display display;
    private Form frmMain;
    private TextField txfName;
    private Command cmdExit;

    public MIDlet2() {
        display = Display.getDisplay(this);
        cmdExit = new Command("Exit", Command.SCREEN, 1);
        txfName = new TextField("Name:", "", 10, TextField.ANY);
        frmMain = new Form("Sample Form");
        frmMain.addCommand(cmdExit);
        frmMain.append(txfName);
        frmMain.setCommandListener(this);
    }

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

    public void pauseApp() { }

    public void destroyApp(boolean unconditional) { }

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

Manifest.mf 檔案(置於 JAR 內)

MIDlet-Name: TwoMIDlets
MIDlet-Version: 1.0
MIDlet-Vendor: Core J2ME Technology
MIDlet-1: MIDlet1,/image1.png, MIDlet1
MIDlet-2: MIDlet2,/image2.png, MIDlet2
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0

MIDlet.jad 檔案

MIDlet-Name: TwoMIDlets
MIDlet-Version: 1.0
MIDlet-Vendor: Core J2ME Technology
MIDlet-Description: Packaging multiple MIDlets
MIDlet-Jar-URL: MIDlet.jar
MIDlet-Jar-Size: 3144
MIDlet-1: MIDlet1,/image1.png, MIDlet1
MIDlet-2: MIDlet2,/image2.png, MIDlet2

模擬器執行結果

從左至右依序為:

  1. 顯示 MIDlet 選單
  2. 執行 MIDlet 1
  3. 執行 MIDlet 2

關鍵要點

1. MIDlet 註冊資訊必須一致

Manifest 與 JAD 檔案中的 MIDlet-1、MIDlet-2 等屬性必須完全相同。

2. 可省略圖示引用

若不需要圖示,可留空:

MIDlet-1: MIDlet1,, MIDlet1
MIDlet-2: MIDlet2,, MIDlet2

3. JAD 中的可選屬性

MIDlet-Description 屬性在 JAD 中為可選。

4. 基礎版本

本範例基於 MIDP 1.0.3 與 CLDC 1.0.3 版本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved