ドキュメント



Oracle Java SE Embedded: 開発者ガイド

2 プラットフォーム開発者のためのクイック・スタート

デバイスに必要な最小限のJREと、実行する予定の埋込みアプリケーションを使用して、埋込みデバイスを実行する方法について学習します。

この章は、次の項目で構成されています:

入門

Java SE Embeddedには、ターゲット・デバイスにカスタムJREをインストールできるツールがあります。 プラットフォーム開発者のジョブは、デバイスおよびデバイス上で実行されるアプリケーションに必要なJREコンポーネントを決定することです。 「カスタムJREについて」を参照してください。

クイックスタートの例

この項では、埋込みデバイスでJREを設定し、Javaアプリケーションをデプロイする方法の簡単な例を説明します。

典型的な設定があるとします:

  • Linuxを実行しているホスト・コンピュータ

  • Linuxがインストールされた組込みデバイス

  • 組込みデバイスのハードウェアおよびオペレーティング・システムと一致するOracle Java SE Embeddedバンドル

埋込みデバイスにJREを配置すると、適切なコンパクト・プロファイルとJVMを使用して、ここに示す2つのヘッドレス・アプリケーションを実行できます。

次に、プラットフォーム開発者が、埋込みデバイスにインストールするJREを決定する際の基本的なタスクを示します。

次のセクションでは、これらのタスクの実行方法の簡単な例を示します。

ノート:

ほとんどの場合、組み込みデバイスはヘッドレス・アプリケーション (ユーザー・インタフェースなし)を実行します。 このガイドの例として使用されるHello WorldおよびHello RMIアプリケーションは、ヘッドレス・アプリケーションです。

ヘッドフル・アプリケーション(UIを使用)は、Java Development Kit (JDK)のJavaFX APIを使用して開発されます。 ヘッドフル・アプリケーションを使用している場合は、付録「JavaFXのデバイスの準備」を参照してください。

このシナリオは非常に簡単です。 詳細およびその他のオプションについては、各セクションの最後にある「詳細情報」リンクを参照してください。

タスク1ホスト・コンピュータへのOracle Java SE Embeddedのインストール

ホスト・コンピュータでOracle Java SE Embeddedをダウンロードして設定します。

  1. http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.htmlからOracle Java SE Embeddedバンドルをダウンロード

  2. tarファイルからバンドルを抽出します:

    $ cd download 
    $ gunzip *.gz
    $ tar -xvf *.tar 
    
    List of unpacked files ... 
    
  3. 次の環境変数を設定します。

    • EJDK_HOMEdownload/ejdk1.8.0_06に設定

    • まだ設定されていない場合は、JAVA_HOMEの値をローカルのJava SEインストールのパスとして定義します。

  4. インストールを検証します。

    $ cd $EJDK_HOME
    $ bin/jrecreate.sh --help
    Usage: jrecreate --help
    
    Summary of jrecreate syntax ...  
    

詳細情報:

タスク2アプリケーションに使用するプロファイルの決定

すべてのプラットフォーム・アプリケーションでJava jdepsツールを使用して、デバイスにインストールする最小限のコンパクト・プロファイルを決定: compact1、compact2またはcompact3。

jdepsコマンドを使用して、使用できる最小限のコンパクト・プロファイルを確認できます。 jdepsコマンドの使用方法を説明するために、2つの簡単なヘッドレス・アプリケーションの例を取ります: Hello WorldとHello RMI。

「例2-1」に示すHello Worldの例では、アプリケーションは単に"こんにちは世界"をコンソールに出力します。

例2-1 Hello Worldアプリケーション

public class HelloWorld {
  public static void main (String args[]) {
    System.out.println("Hello world!");
  }
}

「例2-2」に示すHello RMIの例では、RMI LocateRegistryクラスを使用してリモート・オブジェクトにアクセスし、エラーが発生した場合はスタック・トレースを出力します。

例2-2 Hello RMIアプリケーション

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
 
public class HelloRMI {
  public static void main (String args[]) {
    if (System.getSecurityManager() == null) {
      System.setSecurityManager(new SecurityManager());
    }
    try {
      Registry registry = LocateRegistry.getRegistry("testRMI");
      System.out.println("Hello RMI!");
      } catch (Exception e) {
        System.err.println("RMI exception:");
          e.printStackTrace();
      }
  }
}

また、両方のアプリケーションがコンパイルされているとします。 いずれかのサンプル・アプリケーションをコンパイルする場合は、コンパイル・コマンドを「例2-3」に示します。

例2-3 Hello WorldおよびHello RMIのコンパイル・コマンド

% javac HelloWorld.java
% javac HelloRMI.java

これで、jdepsツールを使用して、各アプリケーションの実行に必要な最小限のコンパクト・プロファイルを決定できます。 「例2-4」は、Hello Worldアプリケーションのコマンドと結果を示します。

例2-4 Hello Worldアプリケーションのjdepsコマンドおよび結果

% jdeps -P HelloWorld.class
 
HelloWorld.class -> /net/test11.us.example.com/export/java-re/jdk/8/ea/b124/binaries/linux-i586/jre/lib/rt.jar
   <unnamed> (HelloWorld.class)
      -> java.io                                            compact1
      -> java.lang                                          compact1

「例2-4」の結果は、compact1プロファイルがHello Worldアプリケーションの実行に必要な最小限のプロファイルであることを示しています。

「例2-5」は、Hello RMIアプリケーションのコマンド結果を示します。

例2-5 jdeps Hello RMIアプリケーションのコマンドおよび結果

% jdeps -P HelloRMI.class
HelloRMI.class -> /net/test11.us.example.com/export/java-re/jdk/8/ea/b124/binaries/linux-i586/jre/lib/rt.jar
   <unnamed> (HelloRMI.class)
      -> java.io                                            compact1
      -> java.lang                                          compact1
      -> java.rmi.registry                                  compact2

「例2-5」の結果は、Hello RMIアプリケーションのjava.rmi.registryクラスにcompact2プロファイルが最小限必要であることを示しています。

詳細情報:

タスク3使用するJVMの決定

最も重要なパフォーマンス特性に基づいて、インストールするJVMのバージョンを選択: 最小、クライアントまたはサーバー。

アプリケーションの実行に最も重要なパフォーマンス特性に基づいてJVMを選択します。 簡単に言えば、3つのJava SE Embedded JVMには、次のパフォーマンス特性があります:

表2-1 JVMバージョンとその主なパフォーマンス特性

JVMバージョン プライマリ・パフォーマンス特性

最小

最小メモリー・フットプリント

Client

応答性

Server

長時間実行アプリケーション用にチューニング


この例では、フットプリントが最も小さい最小限のJVMを試し、パフォーマンスに満足できない場合は、より高いJVMにアップグレードします。

詳細情報:

タスク4 jrecreateを使用したJREの作成

インストールするプロファイルとVMを選択したため、抽出されたJava SE埋込みバンドルのbinフォルダに含まれるjrecreateコマンドを使用して、ホスト・コンピュータ上の一時ディレクトリにJREをインストールできるようになりました。

ホスト・コンピュータで次のコマンドを実行します:

% download/ejdk1.8.0_06/bin/jrecreate.sh \
     --profile compact1 \
     --dest /tmp/defaultJRE/

詳細情報:

タスク5埋込みデバイスへのJREのデプロイ

JREをデプロイするには、jrecreateコマンドで作成したJREファイルを埋込みデバイスにコピーします。 コピー方法は、ネットワークとSDカードのどちらを使用するかによって異なりますが、コピー・コマンドの例を次に示します:

scp -r /tmp/defaultJRE/* root@target:/opt/local/ejdk1.8.0_06/

詳細情報:

タスク6埋込みアプリケーションをデバイスにデプロイ

Hello WorldおよびHello RMIアプリケーションをコンパイルした場合は、それらをコピーして、埋込みデバイスで実行できます。 または、独自のアプリケーションを使用してコピーできます。

詳細情報:

ウィンドウを閉じる

目次

Oracle Java SE Embedded: 開発者ガイド

展開 | 縮小