https://blogs.oracle.com/jtc/entry/introducing_the_ejdk
Compact Profilesの導入に足並みをそろえて、Java 8にはEJDKと呼ばれるJava SE Embeddedという新しいディストリビューションが含まれます。標準のJDK(Java Development Kit)とEJDKを混同する方がいらっしゃると思うので、この2つのパッケージの形式や機能の違いを説明しておくべきでしょう。
An Introduction to Java 8 Compact Profiles
https://blogs.oracle.com/jtc/entry/a_first_look_at_compact
JDK
由緒あるJava Development Kitは、Java開発者の頼みの綱です。それだけでなく、内蔵され、標準のJava Runtime Environment (JRE)が内蔵されているだけでなく、開発者にとって必要な重要なツールも含まれています。例えばJDKには、Javaコンパイラ(javac)、Javaコンソールアプリケーション(jconsole)、Javaデバッガ(JDB)やJavaアーカイブ·ユーティリティ(JAR)が付属しています。また、NetBeansやEclipse、JDeveloperおよびIntelliJのような、非常に人気のあるJava統合開発環境(IDE)の基盤として機能します。NetBeans IDEJavaのようにJava Development Kitは常に進歩しており、Java8では、JDKにかなりの機能強化をもたらします。Java 8の場合、javacに-profile コマンドラインオプションを付けてコンパイルすると、ソースコードが特定Comnpact Profileで動作することを保証することができます。さらに、Java 8 JDKにはjdepsと呼ばれる新しい有用なツールが付属します。これを使うと、コンパイルされたクラスとjarファイルの依存性を分析することができます。
https://netbeans.org/
Eclipse
https://www.eclipse.org/
Oracle JDeveloper
http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html
IntelliJ IDEA
http://www.jetbrains.com/idea/
EJDK
EJDKはJava 8で登場しました。JDKに名前が似ていますが、目的は異なります。Java 8の前は、サポートされたJava SE-Embeddedランタイムプラットフォームは、Oracleがバイナリとして提供していました。Compact Profilesが出現すると、サポート対象のプラットフォームごとに考えられうるバイナリオプションの数が膨大になってしまい、手に負えなくなるでしょう。可能な組み合わせのそれぞれのバイナリを作り付けるよりは、サポート対象のJava SE Embeddedプラットフォーム毎にEJDKを供給します。この中には使用したいプロファイルを作成するために必要なツールが含まれています。EJDKは、Java Runtime Environmentと一緒に、WindowsまたはLinux/Unixプラットフォームで動作するように設計されており、展開可能なコンパクトなプロファイルのインスタンスを作成することができるjrecreate(UNIX / Linux用はjrecreate.sh、Windows用はjrecreate.bat)と呼ばれるラッパーを有しています。以下の例で、2つのサンプルの呼び出しを紹介します。
まず第一に、簡単に典型的なEJDKの内容を見てみましょう。最初の例では、Linux/x86システム上にEJDKをインストールしました。 ejdk1.8.0ディレクトリの内容を一覧表示してみました。namedlinux_arm_vfp_hflt/というディレクトリをみてみましょう。ここから、このEJDKインスタンスがサポートしているプラットフォームがわかります。今回の例では全て、Linux/Arm Floatプラットフォーム(armhfと呼ばれることもあります)に最適化されたCompact Profilesを作成するEJDKを使います。
bin/ディレクトリの中を覗いてみると、 jrecreate.bat と jrecreate.sh ファイルがあります。$ ls ejdk1.8.0 bin doc lib linux_arm_vfp_hflt
Linuxプラットフォームを使っているので、 jrecreate.sh スクリプトを使ってCompact Profilesを作成しましょう。$ ls ejdk1.8.0/bin jrecreate.bat jrecreate.config.properties jrecreate.sh
この呼び出しを簡単に確認しましょう。--profile compact1オプションでjrecreateにCompact1 Profileを使うように指示しています。--profileオプションは引数としてcompact1、compact2、compact3を受け入れます。--dest compact1-minimalオプションで、新たに作成するプロファイルを保存するディレクトリの名前を指定します。なお、--destに引数として指定するディレクトリは事前に存在している必要があります。最後に、 --vm minimal オプションは、このインスタンスの最小限の(すなわち最小の)仮想マシンを使うようにjrecreateに指示します。--vmオプションではminimal、client、server、allを引数として受け入れます。完全なjrecreate.shコマンドを実行すると、以下のように出力されます。$ ./ejdk1.8.0/bin/jrecreate.sh --profile compact1 --dest compact1-minimal --vm minimal
この例では、compact-1-minimal/ディレクトリに約10.5MBのCompact1 profileのディストリビューションを作成しています。2つ目の例では、Compact2ベースのプロファイルとクライアントVMをWindows 7/64ビットシステムで作成しています。$ ./ejdk1.8.0/bin/jrecreate.sh --profile compact1 --dest compact1-minimal --vm minimal Building JRE using Options { ejdk-home: /home/java8/ejdk1.8.0 dest: /home/java8/compact1-minimal target: linux_arm_vfp_hflt vm: minimal runtime: compact1 profile debug: false keep-debug-info: false no-compression: false dry-run: false verbose: false extension: [] } Target JRE Size is 10,595 KB (on disk usage may be greater). Embedded JRE created successfully
このCompact2インスタンスを compact2-client/ ディレクトリに作成したところ、およそ17.5MBのサイズになりました。さらにカスタマイズするために、jrecreateに対し他のオプションを追加して利用することができます。c:\demo>ejdk1.8.0\bin\jrecreate.bat --profile compact2 --dest compact2-client --vm client Building JRE using Options { ejdk-home: c:\demo\ejdk1.8.0\bin\.. dest: c:\demo\compact2-client target: linux_arm_vfp_hflt vm: client runtime: compact2 profile debug: false keep-debug-info: false no-compression: false dry-run: false verbose: false extension: [] } Target JRE Size is 17,552 KB (on disk usage may be greater). Embedded JRE created successfully
最後に、生成されたプロファイルを実際のデバイスに移送しましょう。ホストプラットフォームとしておなじみのRaspberry Piを使います。以下は2個のプロファイルとファイルシステム上でのサイズ(1Kブロック)を出したものです。
Raspberry Pi
http://www.raspberrypi.org/
以下は java -version を実行したときの各バージョンでの出力結果です。pi@pi0 ~/java8 $ ls compact1-minimal compact2-client pi@pi0 ~/java8 $ du -sk compact* 10616 compact1-minimal 17660 compact2-client
結論として、EJDKを使って実験されることをお勧めします。実際に試してもらえば、皆さんのデバイスで利用可能なCompact Profileの構成オプションを感じ取ってもらえることでしょう。pi@pi0 ~/java8 $ ./compact1-minimal/bin/java -version java version "1.8.0" Java(TM) SE Embedded Runtime Environment (build 1.8.0-b127, profile compact1, headless) Java HotSpot(TM) Embedded Minimal VM (build 25.0-b69, mixed mode) pi@pi0 ~/java8 $ ./compact2-client/bin/java -version java version "1.8.0" Java(TM) SE Embedded Runtime Environment (build 1.8.0-b127, profile compact2, headless) Java HotSpot(TM) Embedded Client VM (build 25.0-b69, mixed mode)
0 件のコメント:
コメントを投稿