ドキュメント



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_HOMEをdownload/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: 開発者ガむド

展開 | 瞮小