(57)【要約】デバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータからデバイスへ選択的にロードすることによって、ジャバアプリケーションが、ジャバマイクロデバイス内でデバッグされ、このサブセットは、ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される。つまり、デバッグの開始時に、クラス及びリソースの少なくとも一方のセット全体を含む潜在的に膨大なジャバアーカイブ（ＪＡＲ）ファイルをロードする必要を削減することができる、あるいは解消することができる。本発明は、デバイス上のアプリケーションをデバッグ中に使用されるモジュールをホストコンピュータからロードするために使用することができる。
2006525575.tif 000002
【特許請求の範囲】
【請求項１】
ジャバ２マイクロエディション（Ｊ２ＭＥ）における、ジャバアプリケーションをデバッグする方法であって、
前記Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードし、このサブセットは、前記ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とする方法。
【請求項２】
前記選択的にロードすることは、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記選択的にロードすることは、
前記ジャバアプリケーションをデバッグ中に使用される、前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定し、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストし、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードし、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続することを含む
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記インストールすることは、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールすることを含む
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥ内の前記ジャバアプリケーションをデバッグすること、前記ホストコンピュータから前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストすること、前記ホストコンピュータからリクエストされたジャバクラス及びジャバリソースファイルの少なくとも一方を前記Ｊ２ＭＥデバイスにロードすること、前記Ｊ２ＭＥデバイスにロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグすることを継続することは、繰り返して順序正しく実行される
ことを特徴とする請求項４に記載の方法。
【請求項７】
前記判定することは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得し、
前記Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定することを含む
ことを特徴とする請求項３に記載の方法。
【請求項８】
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールし、
前記Ｊ２ＭＥデバイスにプレインストールされている前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、前記エントリポイントクラスと、再帰的に判定される前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方とを、前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記判定することは、
前記ホストコンピュータでのエミュレータにおいて前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータでの前記エミュレータにおける前記ジャバアプリケーションのデバッグに基づいて、前記ジャバアプリケーションのデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定することを含む
ことを特徴とする請求項３に記載の方法。
【請求項１０】
前記選択的にロードすることは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項３に記載の方法。
【請求項１１】
前記選択的にロードすることは、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードすることを含み、
このサブセットは、開発モードにある前記Ｊ２ＭＥデバイスに応答して、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とする請求項１に記載の方法。
【請求項１２】
更に、配置モード中に、前記Ｊ２ＭＥデバイス上にプレインストールされるジャバクラス及びジャバリソースファイルの少なくとも一方を使用することを含む
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
ジャバデバイス内のジャバアプリケーションをデバッグする方法であって、
前記ジャバデバイス内の前記ジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータから前記ジャバデバイスへ選択的にロードし、このサブセットは、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とする方法。
【請求項１４】
前記選択的にロードすることは、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記ジャバデバイスへロードすることを含む
ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記選択的にロードすることは、
前記ジャバアプリケーションをデバッグ中に使用される、前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定し、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記ジャバデバイスへロードすることを含む
ことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記ジャバデバイスへロードすることは、更に、
前記ジャバデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記ジャバデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストし、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ジャバデバイスへロードし、
前記ジャバデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記ジャバデバイス内の前記ジャバアプリケーションのデバッグを継続することを含む
ことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記判定することは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得し、
前記ジャバデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定することを含む
ことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記選択的にロードすることは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記ジャバデバイスへロードすることを含む
ことを特徴とする請求項１５に記載の方法。
【請求項１９】
前記選択的にロードすることは、前記ジャバデバイス内の前記ジャバアプリケーションをデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記ジャバデバイスへ選択的にロードし、このサブセットは、配置モードにある前記ジャバデバイスに応答して、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択されることを含む
ことを特徴とする請求項１３に記載の方法。
【請求項２０】
更に、配置モード中に、前記ジャバデバイス上にプレインストールされるジャバクラス及びジャバリソースファイルの少なくとも一方を使用する
ことを特徴とする請求項１９に記載の方法。
【請求項２１】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイスであって、
キロバイト仮想マシーン（ＫＶＭ）と、
前記ＫＶＭで動作する少なくとも１つのアプリケーションと、
前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードするように構成されているオフデバイスクラス／リソースローダとを備え
このサブセットは、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするＪ２ＭＥデバイス。
【請求項２２】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項２１に記載のＪ２ＭＥデバイス。
【請求項２３】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバアプリケーションのデバッグ中に使用され、前記ホストコンピュータで判定されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項２１に記載のＪ２ＭＥデバイス。
【請求項２４】
前記オフデバイスクラス／リソースローダは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストし、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードし、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続する
ように構成されている
ことを特徴とする請求項２２に記載のＪ２ＭＥデバイス。
【請求項２５】
前記オフデバイスクラス／リソースローダは、更に、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールするように構成されている
ことを特徴とする請求項２４に記載のＪ２ＭＥデバイス。
【請求項２６】
前記オフデバイスクラス／リソースローダは、前記Ｊ２ＭＥデバイスで、開発モード中に応答する
ことを特徴とする請求項２１に記載のＪ２ＭＥデバイス。
【請求項２７】
配置モード中に、前記Ｊ２ＭＥデバイス上にプレインストールされているジャバクラス及びジャバリソースファイルの少なくとも一方を使用するように構成されている、オンデバイスクラス／リソースローダを更に備える
ことを特徴とする請求項２６に記載のＪ２ＭＥデバイス。
【請求項２８】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイス内のジャバアプリケーションをデバッグするためのシステムであって、
ホストコンピュータと、
前記ホストコンピュータ上の統合化開発環境（ＩＤＥ）と、
前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードされるように構成されているオフデバイスクラス／リソースローダとを備え、
このサブセットは、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするシステム。
【請求項２９】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバアプリケーションのデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを判定し、かつ判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項２８に記載のシステム。
【請求項３１】
前記オフデバイスクラス／リソースローダは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから参照される前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードし、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続する
ように構成されている
ことを特徴とする請求項２９に記載のシステム。
【請求項３２】
前記オフデバイスクラス／リソースローダは、更に、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールするように構成されている
ことを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記オフデバイスクラス／リソースローダは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得し、
前記Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定することによって、
デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを判定するように構成されている
ことを特徴とする請求項３０に記載のシステム。
【請求項３４】
前記オフデバイスクラス／リソースローダは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールし、
前記Ｊ２ＭＥデバイスにプレインストールされている前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、前記エントリポイントクラスと、再帰的に判定される前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方とを、前記Ｊ２ＭＥデバイスへロードすることによって、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードされるように構成されている
ことを特徴とする請求項３３に記載のシステム。
【請求項３５】
更に、前記ホストコンピュータ上にエミュレータを備え、前記オフデバイスクラス／リソースローダは、
前記エミュレータにおいて前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータでの前記エミュレータにおける前記ジャバアプリケーションのデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定することによって、
デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを判定するように構成されている
ことを特徴とする請求項３０に記載のシステム。
【請求項３６】
前記オフデバイスクラス／リソースローダは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールし、
前記エミュレータにおける前記ジャバアプリケーションのデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記Ｊ２ＭＥデバイスにロードするように構成されている
ことを特徴とする請求項３５に記載のシステム。
【請求項３７】
デバイス内のアプリケーションをデバッグするためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータ使用可能記憶媒体に記憶されたコンピュータ可読プログラムコードを有するコンピュータ使用可能記憶媒体を備え、前記コンピュータ可読プログラムコードは、
前記デバイス内の前記アプリケーションをデバッグ中に使用されるコードモジュールのサブセットを、ホストコンピュータから前記デバイスへ選択的にロードするように構成されているコンピュータ可読プログラムコードを備え、このサブセットは、前記ホストコンピュータにおいて、コードモジュールのセットから自動的に選択される
ことを特徴とするコンピュータプログラム製品。
【請求項３８】
前記選択的にロードするように構成されているコンピュータ可読プログラムコードは、前記コードモジュールが前記ジャバアプリケーションをデバッグ中に参照されるように、該コードモジュールを、前記ホストコンピュータから前記デバイスへロードするように構成されているコンピュータ可読プログラムコードを備える
ことを特徴とする請求項３７に記載のコンピュータプログラム製品。
【請求項３９】
前記選択的にロードするように構成されているコンピュータ可読プログラムコードは、
前記アプリケーションをデバッグ中に使用される、コードモジュールのサブセットを、前記ホストコンピュータで判定するように構成されているコンピュータ可読プログラムコードと、
前記判定されたコードモジュールのサブセットを、前記ホストコンピュータからロード前記デバイスへロードするように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３７に記載のコンピュータプログラム製品。
【請求項４０】
前記アプリケーションはジャバアプリケーションであり、前記コードモジュールはジャバクラス及びジャバリソースファイルの少なくとも一方であり、前記コンピュータ可読プログラムコードは、前記コードモジュールが前記アプリケーションをデバッグ中に参照されるように、該コードモジュールを前記ホストコンピュータから前記デバイスへロードするように構成されているコンピュータ可読プログラムコードは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールするように構成されているコンピュータ可読プログラムコードと、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグするように構成されているコンピュータ可読プログラムコードと、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストするように構成されているコンピュータ可読プログラムコードと、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードと、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続するように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３８に記載のコンピュータプログラム製品。
【請求項４１】
前記インストールするように構成されているコンピュータ可読プログラムコードは、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールするように構成されているコンピュータ可読プログラムコードを備える
ことを特徴とする請求項４０に記載のコンピュータプログラム製品。
【請求項４２】
前記アプリケーションはジャバアプリケーションであり、前記コードモジュールはジャバクラス及びジャバリソースファイルの少なくとも一方であり、前記判定するように構成されているコンピュータ可読プログラムコードは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得するように構成されているコンピュータ可読プログラムコードと、
前記Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定するように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３９に記載のコンピュータプログラム製品。
【請求項４３】
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールするように構成されているコンピュータ可読プログラムコードと、
前記Ｊ２ＭＥデバイスにプレインストールされている前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、前記エントリポイントクラスと、再帰的に判定される前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方とを、前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項４２に記載のコンピュータプログラム製品。
【請求項４４】
前記判定するように構成されているコンピュータ可読プログラムコードは、
前記ホストコンピュータでのエミュレータにおいて前記アプリケーションをデバッグするように構成されているコンピュータ可読プログラムコードと、
前記ホストコンピュータでの前記エミュレータにおいて前記アプリケーションをデバッグするように構成されているコンピュータ可読プログラムコードに基づいて、前記アプリケーションのデバッグ中に使用されるコードモジュールのサブセットを、前記ホストコンピュータで判定するように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３９に記載のコンピュータプログラム製品。
【請求項４５】
前記アプリケーションはジャバアプリケーションであり、前記コードモジュールはジャバクラス及びジャバリソースファイルの少なくとも一方であり、前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールするように構成されているコンピュータ可読プログラムコードと、
前記エミュレータにおける前記ジャバアプリケーションのデバッグ中に使用された前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記Ｊ２ＭＥデバイス上の前記ＪＡＲファイルにロードするように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３７に記載のコンピュータプログラム製品。
【請求項４６】
前記選択的にロードするように構成されているコンピュータ可読プログラムコードは、前記デバイス内の前記アプリケーションをデバッグ中に使用される前記コードモジュールのサブセットを、前記ホストコンピュータから前記デバイスへ選択的にロードするように構成されているコンピュータ可読プログラムコードを備え、
このサブセットは、開発モードにある前記デバイスに応答して、前記ホストコンピュータ内のコードモジュールのセットから自動的に選択される
ことを特徴とする請求項３７に記載のコンピュータプログラム製品。
【請求項４７】
更に、配置モード中に前記デバイスにプレインストールされるコードモジュールを使用するように構成されているコンピュータ可読プログラムコードを備える
ことを特徴とする請求項４６に記載のコンピュータプログラム製品。
【請求項４８】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイスにおけるジャバアプリケーションをデバッグするためのシステムであって、
ホストコンピュータと、
前記Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードする手段とを備え、
このサブセットは、前記ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするシステム。
【請求項４９】
前記選択的にロードする手段は、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードする手段を備える
ことを特徴とする請求項４８に記載のシステム。
【請求項５０】
前記選択的にロードする手段は、
前記ジャバアプリケーションをデバッグ中に使用される、ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定する手段と、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードする手段と
を備えることを特徴とする請求項４９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、ジャバを使用する、データ処理方法、システム及びコンピュータプログラム製品に関するものであり、より詳しくは、ジャバアプリケーションをデバッグするためのシステム、方法およびコンピュータプログラムに関するものである。
【０００２】
発明の背景
ジャバは、完全機能搭載型（full-featured）オブジェクト指向プログラミング言語である。つまり、ジャバプログラム（アプリケーション）は、互いに対話する構造化ソフトウェアコンポーネントのセットを生成することによって記述され、これにより、期待する効果をもたらす。これらのコンポーネントはオブジェクトと呼ばれ、階層構造のオブジェクトクラスで構成されても良く、これは単にクラスとも呼ばれる。ジャバプログラムは、コンピュータのオペレーティングシステム上で直接動作するのではなく、ジャバ仮想マシーン（ＪＶＭ）上で動作する。ここで、ＪＶＭ自身はプログラムであり、これは、コンピュータのオペレーティングシステム上で動作する。ジャバのオブジェクト指向性と、ＪＶＭの標準化により、ジャバプログラムは「一度書けばどこでも動く（Write Once Run Anywhere）」（ＷＯＲＡ）機能を提供することができる。ジャバは、コンピュータ分野の当業者には良く知られており、これ以上の説明は必要ではない。
【０００３】
ジャバの使用が広がるにつれて、これはより大きい、またはより小さいスケールのプラットホームに拡張されている。こうして、ジャバは、サーバ及びパーソナルコンピュータ用のジャバ２プラットホームスタンダードエディション（Ｊ２ＳＥ）を超えて、ジャバ２プラットホームエンタープライズエディション（Ｊ２ＥＥ）までに拡張されていて、これは、エンタープライズアプリケーションの開発、構築、展開用のプラットホーム独立型ジャバ集中環境である。また、ジャバ２プラットホームマイクロエディション（Ｊ２ＭＥ）までにも拡張されていて、これにより、デベロッパーは、パーソナルデジタルアシスタント（携帯情報端末）、セットトップボックス、組込機器及び移動電話のような、無線、移動及びコンシューマ機器用のアプリケーションを生成するために、ジャバを使用することが可能になる。
【０００４】
Ｊ２ＭＥでは、ＪＶＭは、それ自身が小さいサイズであることを示すために、キロバイト仮想マシーン（ＫＶＭ）として通常呼ばれる。Ｊ２ＭＥ移動情報デバイスプロファイル（ＭＩＤＰ）は、デベロッパーに、Ｊ２ＭＥデバイス用のダウンロード可能なアプリケーション及びサービスを記述することを許容している。これらのアプリケーション及びサービスは、通常、ＭＩＤレット（MIDlet）と呼ばれる。
【０００５】
Ｊ２ＭＥの設計及び動作は、例えば、２００２年のサンマイクロシステムズ社の、ジャバ２プラットフォーム、マイクロエディションという名称のデータシートにまとめられている。また、本明細書で使用されるように、「Ｊ２ＭＥ」という用語は、メモリが制限されているデバイスであることを示すために使用され、このデバイスは、ジャバのマイクロバージョンを使用する。
【０００６】
多くのベンダーは、ジャバ統合化開発環境（ＩＤＥ）を、ソフトウェアデベロッパーズキット（ＳＤＫ）の一部あるいは、それを組み合わせたものとして提供する。ＩＤＥは、また、ＳＤＫとは別に提供されてもよい。図１に示されるように、ＩＤＥ１１０は、ホストコンピュータ上で動作することができる、ここでは、単に、ホスト１２０とも称し、これは、パーソナルコンピュータあるいはワークステーションを有し、かつエミュレータ１３０とのインタフェースを備えることができる。ＩＤＥ１１０は、実際のＪ２ＭＥデバイス１４０と接続することができ、このＪ２ＭＥデバイス１４０は、ＫＶＭ１５０と、１つ以上のアプリケーション（ＭＩＤレット）１６０を含んでいる。ホスト１２０とＪ２ＭＥ１４０間の接続１７０は、有線及び無線の少なくとも一方とすることができる。ＩＤＥ１１０とエミュレータ１３０間のインタフェース１１２は、統合エミュレータインタフェース（ＵＥＩ）と呼ばれる。Ｊ２ＭＥデバイス１４０上のＫＶＭ１５０とＩＤＥ１１０間には、有線及び無線接続の少なくとも一方の接続１７０を介するインタフェースが提供されても良い。
【０００７】
当業者によく知られているように、アプリケーション（ＭＩＤレット）１６０の設計においては、設計段階中あるいは設計段階後の少なくとも一方において、アプリケーションをデバッグすることが要求される。多くのデバッグ技術が当業者に知られているので、本明細書では説明する必要ない。実際には、ＩＤＥ１１０は、一般的には、エミュレータ１３０を使用して、アプリケーションのソースレベルのデバッグを提供する。残念なことに、アプリケーション１６０を正常にデバッグするためには、新規のエミュレータ１３０を各Ｊ２ＭＥデバイス１４０に対して提供する必要があり、これに対して、アプリケーション１６０が記述される。また、Ｊ２ＭＥデバイス１４０自身の中のＫＶＭ１５０上のアプリケーション１６０をデバッグすることも要求されている。残念なことに、サイズが限られているＫＶＭ１５０では、Ｊ２ＭＥデバイス上にデバッグプログラムをロードするのに時間がかかってしまう可能性がある。また、限られたサイズのＫＶＭ１５０は、いくつかの環境では、Ｊ２ＭＥデバイス１４０上にデバッグプログラムを実行させることが不可能である。Ｊ２ＭＥデバイス１４０上にロードするために、選択されたファイルをパッケージにすることは、デベロッパーにも知られている。
【０００８】
要約
本発明の実施形態は、Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータからＪ２ＭＥデバイスへ選択的にロードすることによって、Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグすることができ、このサブセットは、ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される。つまり、デバッグの開始時に、Ｊ２ＭＥクラス及びリソースの少なくとも一方のセット全体を含む潜在的に膨大なジャバアーカイブ（ＪＡＲ）ファイルをロードする必要を削減することができる、あるいは解消することができる。一方、本発明のいくつかの実施形態では、ジャバアプリケーションのデバッグ中に使用されるクラス／リソースだけが、ホストコンピュータからＪ２ＭＥデバイスへ自動的にロードされる。
【０００９】
いくつかの動的実施形態では、ジャバクラス及びジャバリソースファイルの少なくとも一方がジャバアプリケーションをデバッグ中に参照されるように、ジャバクラス及びジャバリソースファイルの少なくとも一方は、ホストコンピュータからＪ２ＭＥデバイスへロードされる。特定の実施形態では、ＪＡＲファイルが、また、いくつかの実施形態では、空のＪＡＲファイルが、Ｊ２ＭＥデバイスにインストールされる。ジャバアプリケーションは、ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、Ｊ２ＭＥデバイスでデバッグされる。ジャバクラス及びジャバリソースファイルの少なくとも一方は、ホストコンピュータからリクエストされ、そして、ＫＶＭにロードされる。ジャバアプリケーションのデバッグは、ＫＶＭにロードされたジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、Ｊ２ＭＥデバイスで継続される。ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストすること、リクエストされたジャバクラス及びジャバリソースファイルの少なくとも一方をロードすること、デバッグの継続することの処理は、新規のジャバクラス及び新規のジャバリソースファイルの少なくとも一方がデバッグ中に参照される場合に、繰り返して順序正しく実行することができる。
【００１０】
他の静的な実施形態では、デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットは、ホストコンピュータで自動的に判定され、かつ、ホストコンピュータからＪ２ＭＥデバイスへロードされる。より具体的には、いくつかの実施形態では、エントリポイントクラスが、ジャバアプリケーションのデバッグに対して取得される。デバッグ中にエントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方が、再帰的に判定される。プレインストールされているクラス／リソースのリストが、Ｊ２ＭＥデバイスにプレインストールされているこれらの追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外するために使用される。次に、ＪＡＲファイルがＪ２ＭＥデバイスにインストールされ、また、Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、再帰的に判定されるエントリポイントクラスと追加のジャバクラス及びジャバリソースファイルの少なくとも一方が、ＫＶＭにロードされる。
【００１１】
別の他の複合的な実施形態では、上述の動的実施形態と、静的実施形態との構成を組み合わせても良い。例えば、デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットのいくつかは、上述したように、ホストコンピュータで自動的に判定され、かつホストコンピュータからＪ２ＭＥデバイスへロードされる。ジャバアプリケーションのデバッグ中に、ＫＶＭにまだロードされていないジャバクラス及びジャバリソースファイルの少なくとも一方が参照される場合、その参照されたジャバクラス及びジャバリソースファイルの少なくとも一方は、ホストコンピュータからＪ２ＭＥデバイスへロードされる。他の複合的な実施形態を提供することも可能である。
【００１２】
本発明の別の実施形態では、ジャバアプリケーションのデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットは、開発モードの場合に、ホストコンピュータからＪ２ＭＥデバイスへ自動的にロードされる。これに対して、配置モードでは、Ｊ２ＭＥデバイスにプレインストールされているジャバクラス及びジャバリソースファイルの少なくとも一方が使用される。
【００１３】
本発明の実施形態は、方法の構成に関してまず上述している。しかしながら、本発明の実施形態は、Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグするためのシステム及びコンピュータプログラム製品の少なくとも一方を提供することもでき、また、Ｊ２ＭＥデバイス及びＪ２ＭＥデバイス自身に対してＩＤＥを提供することもできる。また、本発明の実施形態は、Ｊ２ＭＥデバイス内のＭＩＤレットデバッグに関して説明しているが、任意のジャバデバイス、即ち、ジャバを実行する任意のデバイス内のジャバアプリケーションのデバッグに適用することもできる。そして、本発明の他の実施形態は、デバイス内で実行する任意のアプリケーションをデバッグするために使用することができ、このアプリケーションがジャバアプリケーション、別のオブジェクト指向プログラミングアプリケーションあるいは従来の機能アプリケーションであるかどうかをデバッグするために使用することができる。デバイスは、ジャバデバイス、非ジャバ指向プログラミングシステムを使用して動作するデバイスあるいは従来の機能プログラミングを使用するデバイスとすることができる。つまり、本発明の実施形態は、普及しているパーソナルアプリケーション及びエンタープライズデバイスの少なくとも一方で動作する、Ｃ、Ｃ＋＋、ＰＥＲＬ、．ＮＥＴのような他のプログラミング言語を使用するコードモジュール（例えば、オブジェクト、ライブラリ、サブルーチン、クラス等）のオフデバイス／ローディングに対して使用することができる。
【００１４】
詳細説明
以下、本発明を、図面を参照してより完全に説明する、ここでは、本発明の実施形態が示される。しかしながら、本発明は、多くの別の形態で実施することもでき、本明細書で説明される実施形態に限定されるものとして解釈されるべきでない。
【００１５】
従って、本発明は、様々な変形及び別の形式を許容することができ、その特定の実施形態が図面の例示によって示され、また、本明細書で詳細に説明される。しかしながら、本発明が、開示される特定の実施形態に制限することを意図するものではなく、それどころか、本発明は、請求項で定義される発明の精神及び範囲に含まれる、あらゆる変形、等価及び代替構成を含むものであることが理解されるべきである。同様の参照番号は、図の説明を通して同様の構成要素として参照する。
【００１６】
本発明は、以下の、本発明の実施形態に従う方法、装置（システム）及びコンピュータプログラム製品の少なくともいずれかに対する、ブロック図及びフローチャート図の少なくとも一方を参照して説明される。ブロック図及びフローチャート図の少なくとも一方の各ブロックと、ブロック図及びフローチャート図の少なくとも一方のブロックの組み合わせは、コンピュータプログラム命令によって実現することができる。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ及び他のプログラム可能なデータ処理装置の少なくともいずれかのプロセッサに提供することで、マシーン（machine）を生成し、そうすることで、コンピュータ及び他のプログラム可能なデータ処理装置の少なくとも一方のプロセッサを介して実行する、また、この命令は、ブロック図及びブローチャートのブロックあるいはブロック群の少なくとも一方において特定される機能／動作を実現する手段を生成する。
【００１７】
また、これらのコンピュータプログラム命令は、コンピュータ可読メモリに記憶されても良く、これは、特定の方法で、コンピュータあるいは他のプログラム可能なデータ処理装置に指示を行うことができ、そうすることで、コンピュータ可読メモリに記憶される命令は、ブロック図及びフローチャートのブロックあるいはブロック群の少なくとも一方で特定される機能／動作を実現する命令を含む製品を生成する。
【００１８】
コンピュータプログラム命令は、コンピュータあるいは他のプログラム可能なデータ処理装置にロードすることもでき、これにより、コンピュータあるいは他のプログラム可能なデータ処理装置上で実行対象の処理ステップのシリーズにより、コンピュータで実現されるプロセスを生成させ、そうすることで、コンピュータあるいは他のプログラム可能なデータ処理装置上で実行する命令は、ブロック図及びフローチャートのブロックあるいはブロック群の少なくとも一方で特定される機能／動作を実現するステップを提供する。
【００１９】
また、いくつかの別の実施形態では、ブロックで示される機能／動作は、フローチャートで示される順序とは異なる順序で実行されても良いことに注意すべきである。例えば、連続して示される２つのブロックは、実際には、実質的に同時に実行されても良い、あるいはそれらのブロックは、時には、介在する機能／動作に依存して、逆の順序で実現されても良い。
【００２０】
図２は、本発明の様々な実施形態に従う、Ｊ２ＭＥデバイス２４０内のジャバアプリケーションあるいはＭＩＤレット２６０をデバッグするために使用することができるシステム、方法及びプログラム製品の少なくともいずれかのブロック図である。ホスト２２０は、その内部にＩＤＥ２１０を含んでいる。デバッグ用に、ホスト２２０とＪ２ＭＥデバイス２４０間には有線及び無線接続の少なくとも一方の接続２７０を提供するために、インタフェースが使用されても良い。アプリケーション（ＭＩＤレット）２６０は、Ｊ２ＭＥデバイス２４０上のＫＶＭ２５０上で動作する。このパラグラフで説明されるコンポーネントの設計及び動作は、当業者によく知られているので、ここでは、これ以上は説明する必要はない。
【００２１】
図２を更に参照すると、本発明の実施形態に従う、擬似エミュレータ２３０が提供される、これは、ＵＥＩインタフェース２１２を使用して、ＩＤＥ２１０と接続することができる。ホストオフデバイスクラス／リソースローディング（あるいはローダ）機能２８０が擬似エミュレータ２３０に付加されても良く、また、デバイスオフクラス／リソースローディング（あるいはローダ）機能２９０がＪ２ＭＥデバイス２４０に付加されても良い。ホストオフデバイスクラス／リソースローディング機能２８０は、ＳＤＫの一部として、１つ以上のモジュールあるいは回路の少なくとも一方で提供されても良く、また、ＩＤＥ２１０及び擬似エミュレータ２３０の少なくとも一方の内部に、少なくとも部分的に統合されていても良い、あるいは、ＩＤＥ２１０及び擬似エミュレータ２３０の少なくとも一方と接続する、１つ以上の別のモジュール及び回路の少なくとも一方を構成しても良い。同様に、Ｊ２ＭＥデバイス２４０において、デバイスオフデバイスクラスリソースローディング機能２９０は、ＫＶＭ２５０及びアプリケーション２６０内の少なくとも一部に統合されている１つ以上のモジュール及び回路の少なくとも一方で提供されても良く、あるいは、１つ以上の別のモジュール及び回路の少なくとも一方を構成しても良い。
【００２２】
図３は、本発明のいくつかの実施形態に従う、Ｊ２ＭＥデバイス２４０のようなＪ２ＭＥデバイス内で、アプリケーション２６０のようなジャバアプリケーションをデバッグするために実行される処理のフローチャートである。図２のホストオフデバイスクラス／リソースローディング機能２８０及びデバイスオフデバイスクラスリソースローディング機能２９０の少なくとも一方によって、これらの処理が実行されても良いことが理解されるであろう。図３に示されるように、ブロック３２０で、オフデバイスクラスリソースローディング３１０は、ホスト２２０のようなホストコンピュータから、Ｊ２ＭＥデバイス２４０内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、選択的に、Ｊ２ＭＥデバイスにロードすることによって提供されても良く、これは、ホスト２２０内のジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットから自動的に選択される。これにより、ロード時間が削減され、また、デバッグを小規模のＫＶＭ２５０で正常に実行することができる。
【００２３】
図４及び図５は、図３のブロック３２０の他の実施形態を示すフローチャートである。特に、図４に示されるように、動的な実施形態３２０’においては、ジャバクラス及びジャバリソースファイルの少なくとも一方がジャバアプリケーション２６０をデバッグ中に参照されるように、ジャバクラス及びジャバリソースファイルの少なくとも一方は、ホストコンピュータ２２０からＪ２ＭＥデバイス２４０にだけロードされ、これは、ブロック４１０で、選択的には、図５に示されるように、静的な実施形態３２０’’においてが、ブロック５１０において、ジャバアプリケーションをデバッグ中に使用されるジャバはラス及びジャバリソースファイルの少なくとも一方のサブセットの判定が、ホスト２２０で自動的に実行される。次に、ブロック５２０で、ブロック５１０で自動的に判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットは、ホスト２２０からＪ２ＭＥデバイス２４０にロードされる。図４及び図５の構成を組み合わせた複合的な実施形態が提供されても良い。図４及び図５の少なくとも一方の実施形態は、「クラス／ファイル単位」、及び／あるいは複数のクラス及び／あるいはファイル単位で実行されても良い。アプリケーション内で構築されるいくつかのプログラムは、どのクラスがランタイムで参照することができるかを静的に判定するための機能をバイパスすることができることが理解されるであろう。つまり、図５の実施形態は、参照されるすべてのクラス／リソースファイルを自動的に判定することはできない。そのため、この複合的な実施形態を採用することができる。
【００２４】
図６は、ジャバクラス及びジャバリソースファイルの少なくとも一方がジャバアプリケーションをデバッグ中に参照されるように、ジャバクラス及びジャバリソースファイルの少なくとも一方をホストコンピュータからＪ２ＭＥデバイスへロードするために使用することができる処理のフローチャートであり、これは、図４のブロック４１０に対応する。ブロック６１０で示されるように、空のＪＡＲファイルがＪ２ＭＥデバイスにインストールされる。当業者には良く知られているように、ＪＡＲファイルは、複数のファイルを１つのアーカイブファイルにバンドルすることをデベロッパーに可能にする。典型的には、ＪＡＲファイルは、アプリケーションに関連付けられている、クラスファイル及び補助リソースを含んでいる。ブロック６２０で、ジャバアプリケーションは、ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、Ｊ２ＭＥデバイス２４０でデバッグされる。ブロック６３０で、ジャバクラス及びジャバリソースファイルの少なくとも一方は、ホストコンピュータ２２０からリクエストされる。ブロック６４０で、ホストコンピュータ２２０からリクエストされたジャバクラス及びジャバリソースファイルの少なくとも一方は、ＫＶＭにロードされる。ブロック６５０で、ＫＶＭにロードされたジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、デバッグがＪ２ＭＥデバイス２４０で継続される。
【００２５】
図６の説明を更に続けると、いくつかの実施形態では、ブロック６６０で、別のジャバクラス及びジャバリソースファイルの少なくとも一方がデバッグ中に参照されるかどうかの判定がなされる。そうである場合、ジャバクラス及びジャバリソースファイルの少なくとも一方がこれ以上必要とされなくなるまで、あるいはデバッグが終了されるまで、ブロック６３０、６４０及び６５０の処理が繰り返される。つまり、ブロック６３０、６４０及び６５０の処理は、ジャバクラス及びジャバリソースファイルの少なくとも一方がデバッグ中に参照される場合に、連続して繰り返し実行される。
【００２６】
図７は、デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットをホストコンピュータ２２０で判定するために使用される処理のフローチャートであり、これは、図５のブロック５１０に対応する。図７に示されるように、ブロック７１０で、ジャバアプリケーションデバッグ用のエントリポイントクラスが取得される。次に、ブロック７２０で、ジャバアプリケーションのデバッグ中に、エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方が再帰的に判定され、そうすることで、参照されている追加のクラス及びリソースファイルと、その追加のクラス／リソースファイル等によって参照される追加のクラスリソースファイルが判定される。ブロック７３０で、Ｊ２ＭＥデバイス２４０にプレインストールされる、追加のジャバクラス及びジャバリソースファイルの少なくとも一方が除外される。ブロック７３０の処理は、ブロック７２０と同時、あるいはその後に実行されても良い。つまり、ブロック５２０で、デバッグ中に参照対象として再帰的に判定されるジャバクラス及びジャバリソースファイルの少なくとも一方は、プレインストールされているジャバクラス／ジャバリソースを除いて、ホストからＪ２ＭＥデバイスにロードされても良い。特に、いくつかの実施形態では、ローディングは、Ｊ２ＭＥデバイス上のＪＡＲファイルをインストールし、かつ再帰的に判定される追加のクラス／リソースファイルを、プレインストールされている追加のジャバクラス／リソースを除いて、Ｊ２ＭＥデバイス上のＪＡＲファイルにロードすることによって実行される。
【００２７】
いくつかの実施形態では、ブロック５１０及び図７の処理は、ホストコンピュータ２２０上の擬似エミュレータ２３０を使用して実行されても良いことが理解されるであろう、そうすることで、クラス及びジャバリソースの少なくとも一方のサブセットを。ホストコンピュータ２２０で判定することができる。次に、ジャバクラス及びジャバリソースファイルの少なくとも一方は、Ｊ２ＭＥデバイス２４０上にロードされる。図３〜図７の組み合わせ及び副次的な組み合わせが、本発明の他の実施形態に従って提供されても良いことも理解されるであろう。
【００２８】
図８は、本発明の実施形態に従って、Ｊ２ＭＥデバイスの開発及び配置モードを統合するために使用することができる処理のフローチャートである。図８に示されるように、ブロック８１０で、Ｊ２ＭＥデバイス２４０でデバイスモードが、従来技術を使用して選択される。ブロック８１０で、開発モードが選択される場合、本発明の実施形態に従うブロック３０２の処理が実行され、Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットが、ホストコンピュータからＪ２ＭＥデバイスに選択的にロードされる、これらは、ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される。開発モードでは、デベロッパーによって、アプリケーションが実行され、かつ／あるいはデバッグされることが理解されるであろう。これに対して、配置モードが入力されている場合、ブロック８２０で、プレインストールされているジャバクラス及びジャバリソースファイルの少なくとも一方が、デバイスの配置モード中にアプリケーションを実行するために使用される。つまり、オフデバイスクラスローディングが配置モードに対して使用される、そうでなければ、オンデバイスクラスローディングが配置モードに対して使用される。それゆえ、ＪＶＭ上のクラスローダは、本発明のいくつかの実施形態で変形することができ、これにより、開発モード中にホストからファイルを取得する、一方で、配置モード中はＪ２ＭＥデバイスの自身のファイルシステムからファイルを取得する。
【００２９】
本発明の実施形態の更なる説明を行う。本発明より以前では、ジャバアプリケーション１６０のオンデバイスソースレベルデバッグを実行する場合には、ホスト１２０は、ＵＥＩインタフェースを介して、ジャバＩＤＥ１１０によって渡されるＣＬＡＳＳＰＡＴＣＨ内で、すべてのクラス及び他のリソースファイルをパッケージ化している。当業者に良く知られているように、ＣＬＡＳＳＰＡＴＣＨは、ジャバクラス及び他のリソースファイルが配置されている場所を示す、ＪＶＭ上の環境変数である。これは、コンパイルされたジャバクラスを含むディレクトリ名をリストしている。ＪＡＲファイルは、自身のジャバクラス及びリソースファイルの少なくとも一方を含んでいる。つまり、単一のＪＡＲファイルのサイズは通常かなり大きい。この大きなＪＡＲファイルは、１Ｍｂ以上のサイズの桁であり得り、Ｊ２ＭＥデバイス上にインストールされる。このインストールは、例えば、数分の桁の、膨大な時間がかかる可能性があり、これは、ジャバデベロッパーにとって有用でないオンデバイスデバッグを行うことになる可能性がある。また、多くの状況では、ＪＡＲファイルは、簡単に、Ｊ２ＭＥデバイスの記憶容量を超過し、かつ正常にロードされない。その他の状況では、デベロッパーは、デバッグ中に必要されるクラス／リソースを手動でパッケージにすることができる。しかしながら、デベロッパーの選択が、誤りをもたらす可能性はある。
【００３０】
本発明のいくつかの実施形態は、ＣＬＡＳＳＰＡＴＣＨが、必要とされない特別なライブラリファイルを含んでいる可能性があるという認識から生じているものであるが、ジャバＩＤＥは、ジャバアプリケーションをデバッグするためにどのクラスが使用されるかはわからない。この問題は、ジャバクラスに限定されるものではない、これは、ジャバリソースファイルにも影響を及ぼすからであり、このジャバリソースファイルは、例えば、画像、音声ファイル、及びＣＬＡＳＳＰＡＴＣＨに含まれる任意の他のデータの少なくともいずれかである。
【００３１】
しかしながら、本発明の動的な実施形態に従うオフデバイスクラスローディングを用いると、Ｊ２ＭＥデバイス２４０で動作するＫＶＭ２５０は、ジャバクラス及びリソースファイルの少なくとも一方をＪ２ＭＥデバイスに予めロードすることなく、ＭＩＤレット（アプリケーション）２６０を実行し、デバッグをスタートする。ＣＬＡＳＳＰＡＴＣＨのコンテンツの、潜在的に大きいＪＡＲファイルへのパッケージ化に代えて、空のＪＡＲファイルがＪ２ＭＥデバイス２４０にインストールされ、かつエントリポイントクラス（ＭＩＤレットへ拡張するクラス）名がＫＶＭ２５０へ渡される。次に、ＫＶＭ２５０は、ジャバアプリケーション２６０の実行をスタートし、クラスあるいはリソースファイルをロードする必要がある場合は、シリアル、赤外線、ブルートゥース及び他の有線及び無線の少なくともいずれかのインタフェース２７０に接続されるホスト２２０上で実行するＩＤＥ２１０へリクエストを行う。ホスト２２０は、オリジナルのＣＬＡＳＳＰＡＴＣＨのコピーを保持し、リクエストされたファイルあるいはリソースを配置して、そのファイルをＪ２ＭＥデバイス２４０へ送信する。この方法において、いくつかの実施形態では、デバッグ中にＫＶＭ２５０によってリクエストされるファイルだけが、Ｊ２ＭＥデバイスへ送信される。つまり、ＵＥＩインタフェースをサポートするジャバＩＤＥを使用するセッション中に、オンデバイスデバッグを高速に実行することができる。この起動時間は、劇的に短くすることができる。
【００３２】
上述の本発明の静的な実施形態では、例えば、図４では、スマートＣＬＡＳＳＰＡＴＣＨパッケージャーは、ＵＥＩ  ＣＬＡＳＳＰＡＴＣＨとエントリポイントクラスで開始することができる。このエントリポイントクラスで開始すると、ホストオフデバイスクラス／リソースローディング機能２８０は、クラスファイルを検証し、かつ参照されるクラスを検索することによって、どのクラスが参照されるかを判定する。再帰的な方法では、新規に参照されるクラスそれぞれは、どのクラスをそれが参照しているかを判定するために検査される。その結果、ＭＩＤレット２６０を実行する／デバッグするために必要とされるすべてのクラスのリストあるいはサブセットが生成される。スマートＣＬＡＳＳＰＡＴＣＨパッケージャーは、例えば、特定のＪ２ＭＥデバイスのリードオンリメモリ（ＲＯＭ）内の、プレインストール対象として分かっているクラスのすべてをこのリストから除外することもできる。その結果、クラスファイルの短いリストを生成することができ、このリストは、より小さいＪＡＲファイルを生成するために使用される。ＣＬＡＳＳＰＡＴＣＨ内の、すべてのリソースファイル（非クラスファイル）も、ＪＡＲファイルに含めることができる。どのリソースファイルが必要とされているかを判定するための技術の１つは、擬似エミュレータ２３０内でアプリケーションを実行／デバッグすることである。また、リソースのセットは動的であっても良く、これは、アプリケーションが実行／デバッグされながら、どのコードパスが実行されているかに依存することができる場合である。
【００３３】
本発明のいくつかの実施形態の更なる詳細を説明する。図９は、特定例の処理のフロー図であり、これは、ジャバクラス及びジャバリソースファイルの少なくとも一方をホストコンピュータ２２０からＪ２ＭＥデバイス２４０へロードするために実行され、これらは、ジャバアプリケーション（例えば、図３のブロック４１０で示されるように）をデバッグ中に参照され、また、図６で実行されても良い処理を具体的に示している。
【００３４】
図９に示されるように、ＩＤＥは、処理９１０で、デバッグ処理を開始し、処理９２０で、空のＪＡＲファイルがＫＶＭにインストールされ、これは、図６のブロック６１０に対応する。デバッグ処理は、処理９３０及び９４０でスタートされ、これは、図６のブロック６３０に対応する。処理９５０で、ジャバクラス及びジャバリソースファイルの少なくとも一方がホストからリクエストされる、これは、図６のブロック６３０に対応する、また、処理９６０で、ＫＶＭはクラスをロードする、これは、ブロック６４０に対応する。これらの処理は、例えば、図６のブロック６６０で示されるように、デバッグの進行に従って処理９７０で継続しても良い。
【００３５】
ホスト２２０で実行中のホストオフデバイスクラス／リソースローディング機能と通信する、Ｊ２ＭＥデバイス２４０内のＫＶＭ２５０によって使用することができるプロトコル例は、次のようになる：
ＫＶＭリクエストのフォーマット：
＜ｇｅｔＦｉｌｅ  ｎａｍｅ＝”［ｆｉｌｅ＿ｎａｍｅ］”／＞
ポジティブホスト応答のフォーマット：
［４バイトサイズ］［Ｎバイトのデータ］
４バイトサイズは、ビッグエンディアン順でインタフェース２７０に書き込まれ、      これは、最上位バイトが最初で、最下位バイトが最後になる。
【００３６】
ネガティブホスト応答のフォーマット：
［０ｘ００  ０ｘ００  ０ｘ００  ０ｘ００］
図９のファイル取得（getFile）処理９５０、９７０を実行するために、実行することができる特定例の処理が、図１０で示される。ホスト上のオフデバイスクラス／リソースローディング機能２８０とＫＶＭ２４０間の通信が示される。リクエスト例は、次のように示されても良い：
＜ｇｅｔＦｉｌｅ  ｎａｍｅ＝”／ｃｏｍ／ｓｅｍｃ／ｅｘａｍｐｌｅ／ＭａｎｙＢａｌｌｓ．ｃｌａｓｓ”／＞
＜ｇｅｔＦｉｌｅ  ｎａｍｅ＝”／ｒｓｃ／Ｉｍａｇｅ．ｐｎｇ”／＞
結論としては、本発明の実施形態は、サードパーティアプリケーションデベロッパーによって使用可能とするために、より有効でかつ耐性を持たすことができる方法で、Ｊ２ＭＥデバイスでの実行対象のジャバアプリケーションのオンデバイスソースレベルデバッグを可能にすることができる。デバイス製造者は、市場に展開している各Ｊ２ＭＥに対してデバイスの正確なエミュレータを、サードパーティデベロッパーに供給する必要がない。その代わり、ジャバデベロッパーは、最も正確な取り得る環境：実際のＪ２ＭＥデバイスを使用してアプリケーションを開発することができる。また、デベロッパーは、自身が選択するＩＤＥを使用して、アプリケーションをデバッグすることができる。
【００３７】
図面及び明細書では、本発明の実施形態を開示していて、特定の用語を使用しているが、これらは、請求項で説明される本発明の範囲を限定するものではなく、一般的でかつ説明のためだけに使用されているものである。
【図面の簡単な説明】
【００３８】
【図１】従来のＪ２ＭＥデバッグ環境のブロック図である。
【図２】本発明の実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするためのシステム、方法及びコンピュータプログラム製品のブロック図である。
【図３】本発明の様々な実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするために実行される処理のフローチャートである。
【図４】本発明の様々な実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするために実行される処理のフローチャートである。
【図５】本発明の様々な実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするために実行される処理のフローチャートである。
【図６】本発明の様々な実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするために実行される処理のフローチャートである。
【図７】本発明の様々な実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするために実行される処理のフローチャートである。
【図８】本発明の様々な実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションをデバッグするために実行される処理のフローチャートである。
【図９】本発明の実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションのデバッグの例を示すフロー図である。
【図１０】本発明の実施形態に従うＪ２ＭＥデバイス内のジャバアプリケーションのデバッグの例を示すフロー図である。
【図１】
2006525575.tif 000003
【図２】
2006525575.tif 000004
【図３】
2006525575.tif 000005
【図４】
2006525575.tif 000006
【図５】
2006525575.tif 000007
【図６】
2006525575.tif 000008
【図７】
2006525575.tif 000009
【図８】
2006525575.tif 000010
【図９】
2006525575.tif 000011
【図１０】
2006525575.tif 000012
【手続補正書】
【提出日】平成17年11月8日(2005.11.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ジャバ２マイクロエディション（Ｊ２ＭＥ）における、ジャバアプリケーションをデバッグする方法であって、
前記Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードし、このサブセットは、前記ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とする方法。
【請求項２】
前記選択的にロードすることは、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記選択的にロードすることは、
前記ジャバアプリケーションをデバッグ中に使用される、前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定し、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストし、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードし、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続することを含む
ことを特徴とする請求項２に記載の方法。
【請求項５】
前記インストールすることは、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールすることを含む
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥ内の前記ジャバアプリケーションをデバッグすること、前記ホストコンピュータから前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストすること、前記ホストコンピュータからリクエストされたジャバクラス及びジャバリソースファイルの少なくとも一方を前記Ｊ２ＭＥデバイスにロードすること、前記Ｊ２ＭＥデバイスにロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグすることを継続することは、繰り返して順序正しく実行される
ことを特徴とする請求項４に記載の方法。
【請求項７】
前記判定することは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得し、
前記Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定することを含む
ことを特徴とする請求項３に記載の方法。
【請求項８】
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールし、
前記Ｊ２ＭＥデバイスにプレインストールされている前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、前記エントリポイントクラスと、再帰的に判定される前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方とを、前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記判定することは、
前記ホストコンピュータでのエミュレータにおいて前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータでの前記エミュレータにおける前記ジャバアプリケーションのデバッグに基づいて、前記ジャバアプリケーションのデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定することを含む
ことを特徴とする請求項３に記載の方法。
【請求項１０】
前記選択的にロードすることは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードすることを含む
ことを特徴とする請求項３に記載の方法。
【請求項１１】
前記選択的にロードすることは、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードすることを含み、このサブセットは、開発モードにある前記Ｊ２ＭＥデバイスに応答して、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とする請求項１に記載の方法。
【請求項１２】
更に、配置モード中に、前記Ｊ２ＭＥデバイス上にプレインストールされるジャバクラス及びジャバリソースファイルの少なくとも一方を使用することを含む
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイスであって、
キロバイト仮想マシーン（ＫＶＭ）と、
前記ＫＶＭで動作する少なくとも１つのアプリケーションと、
前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードするように構成されているオフデバイスクラス／リソースローダとを備え、
このサブセットは、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするＪ２ＭＥデバイス。
【請求項１４】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項１３に記載のＪ２ＭＥデバイス。
【請求項１５】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバアプリケーションのデバッグ中に使用され、前記ホストコンピュータで判定されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項１３に記載のＪ２ＭＥデバイス。
【請求項１６】
前記オフデバイスクラス／リソースローダは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストし、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードし、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続する
ように構成されている
ことを特徴とする請求項１４に記載のＪ２ＭＥデバイス。
【請求項１７】
前記オフデバイスクラス／リソースローダは、更に、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールするように構成されている
ことを特徴とする請求項１６に記載のＪ２ＭＥデバイス。
【請求項１８】
前記オフデバイスクラス／リソースローダは、前記Ｊ２ＭＥデバイスで、開発モード中に応答する
ことを特徴とする請求項１３に記載のＪ２ＭＥデバイス。
【請求項１９】
配置モード中に、前記Ｊ２ＭＥデバイス上にプレインストールされているジャバクラス及びジャバリソースファイルの少なくとも一方を使用するように構成されている、オンデバイスクラス／リソースローダを更に備える
ことを特徴とする請求項１８に記載のＪ２ＭＥデバイス。
【請求項２０】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイス内のジャバアプリケーションをデバッグするためのシステムであって、
ホストコンピュータと、
前記ホストコンピュータ上の統合化開発環境（ＩＤＥ）と、
前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードされるように構成されているオフデバイスクラス／リソースローダとを備え、
このサブセットは、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするシステム。
【請求項２１】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記オフデバイスクラス／リソースローダは、更に、前記ジャバアプリケーションのデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを判定し、かつ判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを前記Ｊ２ＭＥデバイスへロードするように構成されている
ことを特徴とする請求項２０に記載のシステム。
【請求項２３】
前記オフデバイスクラス／リソースローダは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールし、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータから参照される前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードし、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続する
ように構成されている
ことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記オフデバイスクラス／リソースローダは、更に、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールするように構成されている
ことを特徴とする請求項２３に記載のシステム。
【請求項２５】
前記オフデバイスクラス／リソースローダは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得し、
前記Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定することによって、
デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを判定するように構成されている
ことを特徴とする請求項２２に記載のシステム。
【請求項２６】
前記オフデバイスクラス／リソースローダは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールし、
前記Ｊ２ＭＥデバイスにプレインストールされている前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、前記エントリポイントクラスと、再帰的に判定される前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方とを、前記Ｊ２ＭＥデバイスへロードすることによって、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードされるように構成されている
ことを特徴とする請求項２５に記載のシステム。
【請求項２７】
更に、前記ホストコンピュータ上にエミュレータを備え、前記オフデバイスクラス／リソースローダは、
前記エミュレータにおいて前記ジャバアプリケーションをデバッグし、
前記ホストコンピュータでの前記エミュレータにおける前記ジャバアプリケーションのデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定することによって、
デバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを判定するように構成されている
ことを特徴とする請求項２２に記載のシステム。
【請求項２８】
前記オフデバイスクラス／リソースローダは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールし、
前記エミュレータにおける前記ジャバアプリケーションのデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記Ｊ２ＭＥデバイスにロードするように構成されている
ことを特徴とする請求項２７に記載のシステム。
【請求項２９】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイス内のジャバアプリケーションをデバッグするためのコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータ使用可能記憶媒体に記憶されたコンピュータ可読プログラムコードを有するコンピュータ使用可能記憶媒体を備え、前記コンピュータ可読プログラムコードは、
前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方ののサブセットを、ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードするように構成されているコンピュータ可読プログラムコードを備え、このサブセットは、前記ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするコンピュータプログラム。
【請求項３０】
前記選択的にロードするように構成されているコンピュータ可読プログラムコードは、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードを備える
ことを特徴とする請求項２９に記載のコンピュータプログラム。
【請求項３１】
前記選択的にロードするように構成されているコンピュータ可読プログラムコードは、
前記ジャバアプリケーションをデバッグ中に使用される、ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定するように構成されているコンピュータ可読プログラムコードと、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータからロード前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項２９に記載のコンピュータプログラム。
【請求項３２】
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードは、更に、
前記Ｊ２ＭＥデバイス上に、ジャバアーカイブ（ＪＡＲ）ファイルをインストールするように構成されているコンピュータ可読プログラムコードと、
前記ジャバクラス及びジャバリソースファイルの少なくとも一方が参照されるまで、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションをデバッグするように構成されているコンピュータ可読プログラムコードと、
前記ホストコンピュータから、前記ジャバクラス及びジャバリソースファイルの少なくとも一方をリクエストするように構成されているコンピュータ可読プログラムコードと、
前記ホストコンピュータからリクエストされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードと、
前記Ｊ２ＭＥデバイスへロードされた前記ジャバクラス及びジャバリソースファイルの少なくとも一方を使用して、前記Ｊ２ＭＥデバイス内の前記ジャバアプリケーションのデバッグを継続するように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３０に記載のコンピュータプログラム。
【請求項３３】
前記インストールするように構成されているコンピュータ可読プログラムコードは、前記Ｊ２ＭＥデバイス上に、空のＪＡＲファイルをインストールするように構成されているコンピュータ可読プログラムコードを備える
ことを特徴とする請求項３２に記載のコンピュータプログラム。
【請求項３４】
前記判定するように構成されているコンピュータ可読プログラムコードは、
前記ジャバアプリケーションのデバッグに対するエントリポイントクラスを取得するように構成されているコンピュータ可読プログラムコードと、
前記Ｊ２ＭＥデバイスにプレインストールされている追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除外しながら、前記ジャバアプリケーションをデバッグ中に前記エントリポイントクラスから参照される追加のジャバクラス及びジャバリソースファイルの少なくとも一方を再帰的に判定するように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３１に記載のコンピュータプログラム。
【請求項３５】
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールするように構成されているコンピュータ可読プログラムコードと、
前記Ｊ２ＭＥデバイスにプレインストールされている前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方を除いて、前記エントリポイントクラスと、再帰的に判定される前記追加のジャバクラス及びジャバリソースファイルの少なくとも一方とを、前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３４に記載のコンピュータプログラム。
【請求項３６】
前記判定するように構成されているコンピュータ可読プログラムコードは、
前記ホストコンピュータでのエミュレータにおいて前記アプリケーションをデバッグするように構成されているコンピュータ可読プログラムコードと、
前記ホストコンピュータでの前記エミュレータにおいて前記アプリケーションをデバッグするように構成されているコンピュータ可読プログラムコードに基づいて、前記アプリケーションのデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定するように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項３１に記載のコンピュータプログラム。
【請求項３７】
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードするように構成されているコンピュータ可読プログラムコードは、
ジャバアーカイブ（ＪＡＲ）ファイルを前記Ｊ２ＭＥデバイスへインストールするように構成されているコンピュータ可読プログラムコードと、
前記エミュレータにおける前記ジャバアプリケーションのデバッグ中に使用された前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記Ｊ２ＭＥデバイス上の前記ＪＡＲファイルにロードするように構成されているコンピュータ可読プログラムコードと
を備えることを特徴とする請求項２９に記載のコンピュータプログラム。
【請求項３８】
前記選択的にロードするように構成されているコンピュータ可読プログラムコードは、前記デバイス内の前記アプリケーションをデバッグ中に使用される前記ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記デバイスへ選択的にロードするように構成されているコンピュータ可読プログラムコードを備え、
このサブセットは、開発モードにある前記デバイスに応答して、前記ホストコンピュータ内のジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とする請求項２９に記載のコンピュータプログラム。
【請求項３９】
更に、配置モード中に前記デバイスにプレインストールされるジャバクラス及びジャバリソースファイルの少なくとも一方を使用するように構成されているコンピュータ可読プログラムコードを備える
ことを特徴とする請求項３８に記載のコンピュータプログラム。
【請求項４０】
ジャバ２マイクロエディション（Ｊ２ＭＥ）デバイスにおけるジャバアプリケーションをデバッグするためのシステムであって、
ホストコンピュータと、
前記Ｊ２ＭＥデバイス内のジャバアプリケーションをデバッグ中に使用されるジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへ選択的にロードする手段とを備え、
このサブセットは、前記ホストコンピュータにおいて、ジャバクラス及びジャバリソースファイルの少なくとも一方のセットから自動的に選択される
ことを特徴とするシステム。
【請求項４１】
前記選択的にロードする手段は、前記ジャバクラス及びジャバリソースファイルの少なくとも一方が前記ジャバアプリケーションをデバッグ中に参照されるように、該ジャバクラス及びジャバリソースファイルの少なくとも一方を、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードする手段を備える
ことを特徴とする請求項４０に記載のシステム。
【請求項４２】
前記選択的にロードする手段は、
前記ジャバアプリケーションをデバッグ中に使用される、ジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータで判定する手段と、
前記判定されたジャバクラス及びジャバリソースファイルの少なくとも一方のサブセットを、前記ホストコンピュータから前記Ｊ２ＭＥデバイスへロードする手段と
を備えることを特徴とする請求項４１に記載のシステム。
【国際調査報告】
2006525575.tif 000013
2006525575.tif 000014
2006525575.tif 000015