KVM for Palmチュートリアル
- Early Access Version 0.2対応、1999年11月17日版 -

     
KVM for Palmとは?

KVM

KVM(K Virtual Machime)は、CPU能力やメモリ容量が制限される携帯情報機器向けにSunが開発中の新しいJava実行環境で、Kバイトオーダー(64K〜128K程度)のメモリで動作することからそのように呼ばれています。KVMを搭載した製品としては携帯電話やページャなどが計画されていますが、特にPalm OSプラットフォームについてはSunからリファレンス実装が提供される予定(2000年3月頃)になっています。

このチュートリアルでは、1999年11月15日にリリースされたKVM Early Access Version 0.2で動作するアプリケーションを、WindowsおよびMac OSプラットフォーム上で作成する手順を簡単に説明します(KVM Early Access Version 0.1対応版もあります)。

KJava

JavaOne '99では、このKVMのプロトタイプ実装であるKJavaがプリインストールされたPalm Vが参加者に低価格で提供されて話題になりました。KJavaはJavaOneでのデモストレーション用に用意されたバージョンにすぎないため、Sunの提唱するKVMやJava 2 Micro Editionの仕様とは異なっている部分もあり、また実装の完成度も決して高いものではありませんでした。

Spotless

KVMのプロトタイプ実装としては、この他にSpotlessと呼ばれるシステムがSun Labsによって公開されています。SpotlessはKJava開発のベースになったシステムです。このため両者は多くの共通点をもっていますが、動作アプリケーションや開発ツールには残念ながら互換性がありません。

開発キットをセットアップする

ダウンロード

KVMのソフトウェア開発キットは、SunのJava Developer Connectionサイト(はじめて利用する場合は、利用者としての登録が必要です)のEarly Accessのページからダウンロードすることができます。

指示にしたがってダウンロードすると、kvm0_2ea.zip(784,933バイト)というアーカイブファイルが得られます。KVMアプリケーションに必要なファイルはすべてこのアーカイブにまとめられています。

フォルダ構成

kvm0_2ea.zipアーカイブファイルを展開すると、KVMの開発キットは、api、bin、docs、samples、toolsの計5個のフォルダから構成されていることがわかります。このKVMフォルダを適当な場所に移動すれば、開発キットのセットアップは完了です。

HotSyncでプログラムをインストールする

ファイル構成

Palmマシンにインストールするファイルは、binフォルダにまとめられています。この中のKVM.prcがJava仮想マシン、KVMClassDB.pdbがクラスライブラリで、この2つのファイルは必ずインストールしなければなりません。他のファイルは、すべてデモアプリケーションです。

HotSync

Palm Desktop(Mac OSの場合はHotSync Manager)を起動して、アプリケーションのインストールリストにbinフォルダの各ファイルを追加します。サイズも大きくないで、とりあえずデモアプリケーションもすべてインストールしておくとよいでしょう。

ファイルの追加が完了したら、HotSyncを実行します。これでKVMのJava実行環境の準備が整いました。

デモアプリケーションを動かしてみる

KVMアイコン

KVMとデモアプリケーションをインストールすると、右図のようなアイコンが表示されます。JavaのマスコットであるDukeのアイコンがついているのが、KVMのJava実行環境です。

KVMのアイコンをタップするとはじめにライセンス条項が表示され、「Accept」ボタンをタップするとインストールされているクラスの一覧が表示されます。クラスを選択して「Run」ボタンをタップすることによってクラスを実行することもできるようになっています。

デモアプリケーション

デモアプリケーションは、それぞれのアイコンをタップすることによって起動します。起動するとDukeの画像が表示され、初期化のために約数十秒間待たされます。

右図は、フラクタル図形を表示するデモアプリケーション、Dragonを実行しているところです。

Hello Worldプログラムを作成する

ソースファイル

プログラムのソースファイルは任意の場所に作成すれば良いのですが、ここではKVMフォルダにprojectsフォルダを新規に作成し、その中に以下の内容のHelloWorld.javaファイルを作成することにします。KVMアプリケーションは、この例のようにSpotletクラスをサブクラス化することにより定義します。

import com.sun.kjava.*;

public class HelloWorld extends Spotlet {
    Graphics g = Graphics.getGraphics();

    public static void main(String[] args) {
        (new HelloWorld()).register(NO_EVENT_OPTIONS);
    }

    public HelloWorld() {
        g.clearScreen();
        g.drawString("Hello, world!", 50, 50, g.PLAIN);
    }

    public void penDown(int x, int y) {
        System.exit(0);
    }
}


コンパイル

作成したソースファイルをコンパイルするには、作業ディレクトリをprojectsフォルダに移動して、以下のようにjavaコマンドのコマンドラインを入力します(ここではCドライブにKVMフォルダをセットアップしたと仮定しています)。

cd C:\kvm\projects
javac -bootclasspath .;C:\kvm\api\classes.zip HelloWorld.java

Mac OSの場合は、javacアプリケーションにHelloWorld.javaファイルをドラッグ&ドロップします。そしてjavacの設定フィールドに以下のように入力し、「Do Javac」ボタンをクリックします(ここではMac OSボリュームにKVMフォルダをセットアップしたと仮定しています)。

Source Files: /Mac OS/KVM/projects/HelloWorld.java
Classpath: /Mac OS/KVM/api/classes.zip

コンバージョン

クラスファイルをPalmマシンで扱えるようにするためには、PRC形式に変換する必要があります。このコンバージョンをおこなうためのMakePalmAppクラスが、toolsフォルダのclasses.zipファイルに格納されています。以下のようにjavaコマンドのコマンドラインを入力すると、HelloWorld.classファイルからHelloWorld.prcを生成することができます。

java -classpath C:\kvm\tools\classes.zip palm.database.MakePalmApp HelloWorld

Mac OSの場合は、JBinderyアプリケーションにHelloWorld.classファイルをドラッグ&ドロップします。そしてJBinderyの設定フィールドに以下のように入力し、「Run」ボタンをクリックします。

Command:
    Class name: palm.database.MakePalmApp
    Optional parameters: HelloWorld
Classpath:
    Addtions to class path: $CLASSPATH
                            /Mac OS/KVM/projects
                            /Mac OS/KVM/tools/classes.zip

projectフォルダに生成されたHelloWorld.prcをHotSyncでPalmマシンにインストールすれば、他のデモアプリケーションと同様にHelloWorldプログラムを実行することができます。

スクリーンの任意の場所をタップするとHelloWorldプログラムは終了します。

アプリケーションプログラムの作成方法とオプションの詳細については、docsフォルダ内のドキュメントにまとめられています。オリジナルのアイコンの作成方法についても説明されていますので、一度目を通しておくとよいでしょう。

Palm OSエミュレータを利用 する

POSE

KVMで動作するアプリケーションを開発するときに、作成中のプログラムをその都度Palmマシンにインストールして動作テストをしていたら大変手間がかかります。そこで、Palmの開発ツールのひとつであるPalm OS Emulator(POSE)を利用することをお勧めします。

ダウンロード

POSEは、3Com/Palm Computingの開発者サイトからダウンロードすることができます。POSEにはWindows用(2,648,530バイト)とMac OS用(3,161,541バイト)があり、どちらも最新版はバージョン2.1d29となっています。

インストール

ダウンロードしたファイルを展開すると、エミュレータプログラムのPalm OS Emulator.exe(Mac OSの場合はPalm OS Emulator)やドキュメントフォルダなどから構成されるフォルダが得られます。このフォルダを適当な場所に移動すれば、インストールはほぼ完了です。

ROMイメージの作成

最後に自分が使用しているPalmマシンのROMイメージファイルを作成します。ROMイメージファイルのは、POSEに付属のROM Transfer.prcファイルをPalmマシンにインストールしてからPOSEを起動し、「File」メニューの「Transfer ROM」コマンドを実行して指示に従うだけで簡単に作成することができます。

日本語を表示する

ソースファイル

KVMでは、日本語の文字列をそのままdrawString() メソッドに与えても正しく表示することができません。これはKVMがUnicodeの文字列処理をサポートしていないためです。ところが以下 の例のように、Shift JISの漢字コードをcharの2文 字に分割したものを使うと日本語を表示することが できます。

import com.sun.kjava.*;

public class HelloJapan extends Spotlet {
    Graphics g = Graphics.getGraphics();

    public static void main(String[] args) {
        (new HelloJapan()).register(NO_EVENT_OPTIONS);
    }

    public HelloJapan() {
        char message[] = { 0x0082, 0x00cd, 0x0082, 0x00b6, 0x0082,
            0x00df, 0x0082, 0x00c4, 0x0082, 0x00cc, 0x0093, 0x00fa,
            0x0096, 0x007b, 0x008c, 0x00ea };
        g.clearScreen();
        g.drawString(new String(message), 50, 50, g.PLAIN);
    }

    public void penDown(int x, int y) {
        System.exit(0);
    }
}


コンパイルから実行まで

プログラムのコンパイルから実行までの手順は、HelloWorldプログラムの場合と同じで、以下のようにjavaコマンドのコマンドラインを入力するとHelloJapan.prcファイルを作成することができます。

cd C:\kvm\projects
javac -bootclasspath .;C:\kvm\api\classes.zip HelloJapan.java
java -classpath C:\kvm\tools\classes.zip palm.database.MakePalmApp HelloJapan


Mac OSの場合も、HelloWorldと同一の手順でコンパイルとコンバージョンをおこないます。

コンバージョンが完了したら、POSEにインストールして動作を確認してみることにしましょう。POSEを起動して「File」メニューの「Install Application/Database」コマンドを実行し、作成したHelloJapan.prcファイルファイルを選択します。これでKVMアプリケーションがPOSEにインストールされていますので、実行してみてください。

スクリーンの任意の場所をタップするとHelloJapanプログラムは終了します。


© 1998, 1999 Jun Fujisawa. All rights reserved.

[Home | Mailing List]