X

An Oracle blog about Java Embedded, Japan

Recent Posts

Java Embedded

Devie I/OをJava SEで利用してシリアル通信 - BLEビーコンの利用

Device I/O APIを利用してJava SE上でシリアル通信を行う方法を紹介します。 Java Day 2016のキーノートのデモでは、ドローンに搭載したゲートウェイでBLEのビーコンを利用して受信した温度/湿度センサーのデータをシリアル通信で取得しました。 ここではその方法を説明します。 ハードウェア環境は、 Atmark Techno社製Armadillo-IoT (Java SE搭載版) Cypress社製 CYALKIT-E02 Solar-Powered BLE Sensor Beacon RDK ソフトウェア環境は、 Java SE 8 Device I/O - OpenJDK を利用します。 まずDevice I/Oのバイナリを生成します。 Atmark Techno社から開発キットをダウンロードしてセットアップしてください。開発キットATDEの入手およびセットアップ方法はこちらを参照してください。 次にJava SE 8のJDK(32ビットLinux/x86版)をダウンロードして、セットアップしたATDE内で展開します。 最後にこちらを参考にしてDevice I/Oのソースコードを入手して、ATDE内に展開してビルドしてください。 ビルドが成功するとbuild/deviceio/lib配下に以下のファイルが生成されます。 ext/dio.jar arm/libdio.so これでJava SE 8でDevice I/Oを利用する環境が整いました。 実際に利用できるか試してみましょう。 まずは次のようなUARTを利用するサンプルコードUARTServer.javaをコンパイルしてUARTServer.classを作成します。 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.nio.channels.Channels;import java.util.logging.Level;import java.util.logging.Logger;import javaday.db.Sensor;import jdk.dio.DeviceConfig;import jdk.dio.DeviceDescriptor;import jdk.dio.DeviceManager;import jdk.dio.uart.UART;import jdk.dio.uart.UARTConfig; public class UARTServer {     private UART uart = null;     private Thread launcher = null;    private boolean running = false;     public UARTServer() {        UARTConfig config = new UARTConfig("ttyACM0",            DeviceConfig.DEFAULT,            115200,            UARTConfig.DATABITS_8,            UARTConfig.PARITY_NONE,            UARTConfig.STOPBITS_1,            UARTConfig.FLOWCONTROL_NONE);        launcher = new Thread() {             public void run() {                try {                    uart = (UART)DeviceManager.open(config);                    InputStream is = Channels.newInputStream(uart);                    StringBuffer buffer = new StringBuffer();                     while (running) {                        char result = (char)is.read();                         if((result == '\n') || (result == '\r')) {                            if(buffer != null) {                                System.out.println(buffer.toString());                                System.out.println("Buffer Length: " + buffer.toString().length());                             }                             buffer = null;                        } else {                            if(buffer == null)                                buffer = new StringBuffer();                            buffer.append(result);                        }                     }                 } catch (IOException ex) {                    Logger.getLogger(UARTServer.class.getName()).log(Level.SEVERE, null, ex);                } catch (Exception ex) {                    Logger.getLogger(UARTServer.class.getName()).log(Level.SEVERE, null, ex);                } finally {                    closeUART();                 }            }         }     }     private void start() {        running = true;        launcher.start();    }    private void stop() {        running = false;    }     private void closeUART() {        try {            if (uart != null) {                uart.close();            }        } catch (Exception ex) {            Logger.getLogger(UARTServer.class.getName()).log(Level.SEVERE, null, ex);        }    }    public static void main(String[] args) {        UARTServer server = new UARTServer();        server.start();    } } 次にプロパティファイルdio.propertiesを以下の内容で用意します。100 = deviceType: uart.UART, controllerName:ttyACM0, name:ttyACM0, baudRate:115200, dataBits:8, parity:0, stopBits:1, flowControl:0, predefined:true uart.UART = baudRate:115200, parity:0, dataBits:8, stopBits:1, flowControl:0, predefined:true またポリシファイルjava.policyを以下の内容で用意します。 grant codeBase "file:${{java.ext.dirs}}/*" {        permission java.security.AllPermission;};grant {        permission java.security.AllPermission;}; これですべての準備が整いました。作成したdio.jar, libdio.so, UARTServer.class, java.policy, dio.propertiesをゲートウェイの任意のディレクトリにすべてコピーし、Cypress社のSDKに含まれるBLEデータのレシーバであるBLE-USB Bridge and Debug BoardをゲートウェイのUSBに接続し、センサーを近くに置いて、     % sudo java -Djava.security.policy=./java.policy -cp ./dio.jar -Djava.library.path=. -Djdk.dio.registry=./dio.properties UARTServer と実行してください。 ターミナル上に取得したセンサーのデータが表示されます。

Device I/O APIを利用してJava SE上でシリアル通信を行う方法を紹介します。 Java Day 2016のキーノートのデモでは、ドローンに搭載したゲートウェイでBLEのビーコンを利用して受信した温度/湿度センサーのデータをシリアル通信で取得しました。 ここではその方法を説明します。 ハードウェア環境は、 Atmark Techno社製Armadillo-IoT (Java SE搭載版) Cyp...

Java ME

Java ME Embedded 8を使ったGPIOを操作するアプリケーション開発(1/2)

以前ブログにて紹介した、Java ME Embedded 8を使ったM2Mアプリケーション開発の記事をご覧いただけたでしょうか。今回はJava ME Embedded 8を使ったGPIOを操作するアプリケーションの開発手順をご紹介したいと思います。 概要 デスクトップ開発環境を利用してGPIOを操作するJava ME Embedded 8のアプリケーションを作成します。スイッチボタン(入力)とLED(出力)はGPIOで接続していて、作成したアプリケーションを実行すると、ボタンを押すたびにLEDの状態を変更します。 ハードウェア要件 利用したハードウェアは以下になります。 Raspberry Pi Model B Revision 2.0 (512 MB) ブレッドボード ブレッドボードワイヤ プッシュボタン(モーメンタリ、4ピン推奨) LED(2.2V 順電圧、20mA推奨) 10KΩ抵抗(プッシュボタン用) 560Ω抵抗(LED用) 事前準備 開発環境の構築です。詳細は以下の記事を参考にしてください。本記事ではRaspberry Piは利用しませんが、あわせて構築しておくことをおすすめします。 開発用PCの環境構築 Raspberry Piの環境構築 Raspberry Piのリモートデバッグ設定 GPIOを利用するJava ME Embeddedプロジェクトの作成 NetBeansを使用してプロジェクトを作成し、Windowsエミュレータを使用して、ローカルでテストします。 NetBeansでのJava ME Embeddedプロジェクトの作成 NetBeansを起動し、ファイル > 新規プロジェクトを選択します。 カテゴリでJava ME Embedded、プロジェクトでJava ME Embeddedアプリケーションを選択し、次 >をクリックします。 新規Java ME Embeddedアプリケーションウィンドウで以下のように変更し、終了をクリックします。 プロジェクト名にTestGPIOと入力 デバイスはEmbeddedDevice1を選択 MIDletの作成にcom.example.GPIOIMletと入力 GPIOPinTestクラスの追加と実装 GPIOPinTestクラスは入力ピン(プッシュボタン)での変更をし、出力端子(LED)の状態を変更する com.exampleを右クリック、新規 > Javaクラスを選択します。 クラス名にGPIOPinTestと入力し、終了をクリックします。 PinListenerインターフェースを実装するクラスを変更します。 public class GPIOPinTest implements PinListener {} クラス内にボタン(入力)とLED(出力)で利用するGPIO端子のクラスフィールドを記入します。 // Emulator Pin valuesprivate static final String LED1 = "LED 1";private static final int LED1_ID = 1;private static final int Button_Port = 0;private static final int Button_Pin = 0;private GPIOPin led1;private GPIOPin button1; startメソッドではボタンとLEDコンポーネントを初期化します。以下のメソッドをクラス内に記入します。 public void start() throws IOException { // Open the LED pin (Output)led1 = (GPIOPin) DeviceManager.open(LED1_ID);// Config file for the button - trigger on a rising edge (from low to high)GPIOPinConfig config1 = new GPIOPinConfig(Button_Port, Button_Pin, GPIOPinConfig.DIR_INPUT_ONLY, DeviceConfig.DEFAULT, GPIOPinConfig.TRIGGER_BOTH_EDGES, false);// Open the BUTTON pin (Input)button1 = (GPIOPin) DeviceManager.open(config1);// Add this class as a pin listener to the buttonsbutton1.setInputListener(this);// Turn the LED on, then off - this tests the LEDled1.setValue(true);try { Thread.sleep(1000);} catch (InterruptedException ex) {}// Start the LED's off (false)led1.setValue(false); } stopメソッドではボタンとLEDリソースをクローズします。以下のメソッドをクラス内に記入します。 public void stop() throws IOException { if (led1 != null) { led1.setValue(false);led1.close();}if (button1 != null) { button1.close();} } valueChangedメソッドは入力ピン(ボタン)の状態が変化したときに呼び出されます。以下のメソッドをクラス内に記入します。 @Overridepublic void valueChanged(PinEvent event) { GPIOPin pin = (GPIOPin) event.getDevice();// Simple one button = one LEDtry { if (pin == button1) { System.out.println("setting led1" );led1.setValue(!led1.getValue()); // Toggle the value of the led } } catch (IOException ex) { System.out.println("IOException: " + ex); } } Ctrl + Shift + Iを押し、必要なインポート文を追加します。 GPIOIMletクラスの実装 GPIOIMletクラスに次のクラスフィールドを追加します。 private GPIOPinTest pinTest; startAppメソッドはIMletが一時停止から起動中に状態が変化したときに呼び出されます。NetBeansが生成したstartAppメソッドを以下のコードに書き換えます。 @Overridepublic void startApp() { pinTest = new GPIOPinTest();try { pinTest.start();} catch (IOException ex) { System.out.println("IOException: " + ex);notifyDestroyed();} } NetBeansが生成したpauseAppメソッドを削除します。 destroyAppメソッドはIMletが実行中または一時停止から破棄された状態に変化したときに呼び出されます。NetBeansが生成したdestroyAppメソッドを以下のコードに書き換えます。 @Overridepublic void destroyApp(boolean unconditional) { try { pinTest.stop();} catch (IOException ex) { System.out.println("IOException: " + ex);} } Ctrl + Shift + Iを押し、必要なインポート文を追加します。 API権限の設定 Device Access APIへのアクセスを必要とするアプリケーションでは、JADファイル内に適切な権限を設定する必要があります。 以下の手順で権限を付与します。 TestGPIOプロジェクト上で右クリックし、プロパティを選択します。 [プロジェクト・プロパティ]ウィンドウで、カテゴリからアプリケーション・ディスクリプタを選択し、API権限タブの追加をクリックします。 [APIの権限の追加]ウィンドウで、以下の手順で権限の追加を行います。 権限プルダウンでjdk.dio.DeviceMgmtPermissionを選択 保護されたリソース名に*:*を入力 要求されたアクションにopenを入力 OKをクリック 3.同様、以下の手順で権限の追加を行います。 権限プルダウンでjdk.dio.gpio.GPIOPinPermissionを選択 保護されたリソース名に*:*を入力 要求されたアクションにopenを入力 OKをクリック 3.同様、以下の手順で権限の追加を行います。 権限プルダウンでjdk.dio.gpio.GPIOPortPermissionを選択 保護されたリソース名に*:*を入力 要求されたアクションにopenを入力 OKをクリック OKをクリックします。 Windowsエミュレータ上での実行とテスト TestGPIOプロジェクトを右クリックし、実行を選択します。エミュレータが起動し、IMletが実行状態で表示されます。 GPIOピンタブをクリックし、現在のピン状態のビューを開きます。LED 1とBUTTON 1のオープンカラムが排他的となっていることを確認してください。 外部イベントの作成アイコンをクリックします。 外部イベントの作成画面のGPIOタブをクリックします。 BUTTON 1をクリックします。(ボタンのラベルは、現在の状態を示していて、低はオフの状態を示しています。)ボタンのラベルが[高]に変わります。ボタンが[高]に変化したので、LED 1の値が[高]に変わります。 再びBUTTON 1をクリックすると、LED 1の値が[低]に変わります。 次回はエミュレータ上で動作したアプリケーションをRaspberry Pi上で動作させます。

以前ブログにて紹介した、Java ME Embedded 8を使ったM2Mアプリケーション開発の記事をご覧いただけたでしょうか。今回はJava ME Embedded 8を使ったGPIOを操作するアプリケーションの開発手順をご紹介したいと思います。概要 デスクトップ開発環境を利用してGPIOを操作するJava ME Embedded 8のアプリケーションを作成します。スイッチボタン(入力)とLED(出...

Java SE

メモリの最適化について - Java SE Embedded 8

JavaはOSから見ると、1つのプロセスとして動作しますが、内部的には大きく分けて以下のような3つのメモリ領域が存在します。 HEAP: Javaアプリがインスタンスを生成すると、この領域にメモリが確保されます。 NON-HEAP: NON-HEAP領域は、JVMが実行の最適化のために使用する領域で、Code CacheとMetaspaceという2つの領域に分かれています。 Code Cache: 実行中にJITコンパイラにより変換されたマシン語を保持するための領域 Metaspace: HEAPにロードされたクラスに関するメタ情報等を保持する領域   JavaVM内部で使用される領域: VMが実行時に内部的に使用する領域です。 メモリの構成と測定方法について 次に、メモリが実際にどのぐらい使われているかを計測する方法についてです。以下はそれぞれの領域と、メモリの状況を見る方法について表した図となります。 HEAPはJava Mission Controlを使って画面から確認することもできますし (下図参照)、 あるいはJava SE標準で提供されている下記のAPIをアプリから呼び出すことで実際の使用量を取得することが可能となっています。 Mission Controlを使うか、APIをご使用になるかは状況次第で使い分けていただければと思います。さてAPIですが、以下のようになります。 HEAPの最大値を取得できます。 VMの起動オプション"-Xmx"で指定した値の近似値となります。 java.lang.Runtime.maxMemory(); 利用可能なHEAPの総量を示します。 基本的にはVMの起動オプション"-Xms"で 指定した値の近似値となり、 "-Xms"がない場合は、"-Xmx"の近似値となります。 java.lang.Runtime.totalMemory(); 測定時点での使用可能なHEAPサイズの概算値を返します。 java.lang.Runtime.freeMemory(); またNON-HEAPの状況を見る場合ですが、 APIによる計測方法はなく、 Java Mission Controlを利用して行います。 以下は参考となりますが、Java Mission Controlの該当する画面をキャプチャしたものとなります。 タイプが"NON_HEAP"となっている箇所がNON-HEAPとなります。 最後に、 HEAPでもなくNON-HEAPでもない領域についてですが、 Java VM内部で使用する領域ということもあり、この部分だけを解析するツールは存在しません。 強いてやるとするならば、プロセス全体が使っているメモリの量を計測し、 そこからHEAP/NON-HEAPのサイズを差し引く。というやり方になるかと思います。 OSにより様々かとおもいますが、 Linuxを例にとると、procfsでJavaプロセスが使用中の全物理メモリのサイズ (VmHWM or VmRSS) を計測し、 そこからHEAP/NON-HEAPを引くことで概算値を取得することができるかと思います。 使用メモリを調節するためのオプション さて、実際にJVMのメモリの使用量を調節するにあたり、 まずは大前提として実行環境に最適なJVMが選択されていることを確認してください。 最適なJVMというのは、 組み込みデバイス向けには、 Embedded版のJVMが使われていること。 特にEmbedded向けのOracle JVMは組み込み用CPUに内部の処理が最適化されていたり、無駄なクラスをロードしないよう配慮されています。 なので、同じCPUアーキテクチャでも組み込みとそれ以外の環境によって適切な選択を行ってください。 Minimal/Client/Server版のJVMが適切に使い分けられていること。 これらはJVMの起動オプションによって選択可能です。(参考URL: http://docs.oracle.com/javase/8/embedded/develop-apps-platforms/embedded-jvms.htm#CHDCHECF) 必要最小限のCompactプロファイルが選択されていること。(参考URL: http://docs.oracle.com/javase/8/embedded/develop-apps-platforms/compact-profiles.htm#CHDGIIGE) またJVMの起動オプションの内、 メモリに影響を与えるものを以下に示します。 -Xms: ヒープサイズの初期値。 初期値を指定すると、 メモリ確保をコミットしようとする傾向から、使用している物理メモリの値が若干高くなる可能性があります。 -Xmx: ヒープサイズの最大値。 -XX:ReservedCodeCacheSize: Code Cacheのサイズ指定。 注) JITオプションを使わない場合でもCode Cacheの領域が使用されるため、0にはできません。 -Xint: JITオプションを無効とし、 インタプリタで動作します。 JIT使用時に比べメモリの使用量が減りそうですが、 意外とメモリサイズは変わりません。 -Xss: スレッド毎のスタックサイズを指定します。 スタックサイズの総数はスレッド数にも依存するため、 スレッド数が大きい場合はメモリの低減効果が大きくなります。 -XX:CompileThreshold: JITコンパイラは同じコードが指定回数以上呼び出されると動作し始めますが、 その時の呼び出し回数のしきい値を設定します。 指定した値が大きくなれば、 コンパイルされる可能性が下がるため、 Code Cacheの使用量が減るため、NON-HEAP領域のサイズが減る可能性があります。 上記のオプションは、 アプリを動作させるための要件にも依るため、 一概にどれを使えば良いかを言うのは難しいのですが、 パフォーマンスとメモリのバランスを取りながら、 少しずつパラメータの調整を行ってください。

JavaはOSから見ると、1つのプロセスとして動作しますが、内部的には大きく分けて以下のような3つのメモリ領域が存在します。 HEAP: Javaアプリがインスタンスを生成すると、この領域にメモリが確保されます。 NON-HEAP: NON-HEAP領域は、JVMが実行の最適化のために使用する領域で、Code CacheとMetaspaceという2つの領域に分かれています。 Code Cache:...

Java SE

jdepsでCompactプロファイルの依存関係を調べる

Java SE Embedded 8からCompactプロファイルが導入され、 デバイスのROMサイズに応じたプラットフォームの選択が可能となりました。 Compactプロファイルは、compact1, compact2, compact3の3つがあります。 またさらに全てのSEのAPIを含んだFull JREも利用可能となっており、 エンベデッド向けのJava SEとしては、全部で4つの選択肢があることになります。 そこで、自分のアプリケーションがどのプロファイルであれば動作可能なのかを知る方法として、jdepsというツールを使って調べる方法を紹介いたします。なお、jdepsはJDK 8から新規追加されたツールで、JDKの中に同梱されており($JAVA_HOME/bin/jdeps)、いつでも無償にて利用することが可能です。 以下にサンプルとして、jdepsでCompactプロファイルを確認する方法を示します。 ---------------------------------------------------------------------------------------------------------------------  > jdeps -P helloworld.jar           # パッケージ単位で依存関係を調べる場合helloworld.jar -> /opt/jdk1.8.0_05/jre/lib/rt.jar (compact1)   com.example (helloworld.jar)      -> java.io                                            compact1      -> java.lang                                        compact1      -> java.util.logging                              compact1 --------------------------------------------------------------------------------------------------------------------- >jdeps -P -v helloworld.jar           # クラス単位で依存関係を調べる場合 com.example.HelloWorld                           -> java.io.PrintStream                             compact1com.example.HelloWorld                           -> java.lang.Class                                   compact1com.example.HelloWorld                           -> java.lang.InterruptedException           compact1com.example.HelloWorld                           -> java.lang.Object                                  compact1com.example.HelloWorld                           -> java.lang.OutOfMemoryError             compact1com.example.HelloWorld                           -> java.lang.Runtime                               compact1com.example.HelloWorld                           -> java.lang.String                                   compact1com.example.HelloWorld                           -> java.lang.StringBuilder                        compact1com.example.HelloWorld                           -> java.lang.System                                compact1com.example.HelloWorld                           -> java.lang.Thread                                 compact1com.example.HelloWorld                           -> java.lang.Throwable                            compact1com.example.HelloWorld                           -> java.util.logging.Level                          compact1com.example.HelloWorld                           -> java.util.logging.Logger                       compact1 --------------------------------------------------------------------------------------------------------------------- また、出力結果をファイルに出力する場合は、"-dotoutput"オプションに出力ディレクトリを指定することで、ファイルへの書き出しが可能となっています。 ちなみに出力ファイルのフォーマットはDOT言語の形式となっています。 参考URL: 1. jdeps http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html 2. Compactプロファイルについてhttp://www.oracle.com/technetwork/java/embedded/resources/tech/compact-profiles-overview-2157132.html?ssSourceSiteId=otnjp 3. CompactプロファイルのFootprint http://www.oracle.com/technetwork/java/embedded/resources/se-embeddocs/index.html#sysreqs

Java SE Embedded 8からCompactプロファイルが導入され、 デバイスのROMサイズに応じたプラットフォームの選択が可能となりました。 Compactプロファイルは、compact1, compact2, compact3の3つがあります。 またさらに全てのSEのAPIを含んだFull JREも利用可能となっており、 エンベデッド向けのJava...

Java SE

Java Mission Control for SE Embedded 8

今まで主にサーバ環境でのJavaの診断・監視目的で使われてきた、Java Mission Controlですが、Java SE 8 Embeddedからエンベデッド環境のJavaでも利用できるようになりました。Java Mission Controlを使うことにより、JVMやJavaアプリについての、 CPUやメモリの使用状況、 スレッドの状態、 詳細ログの取得等が、 グラフィカルなUIから簡単に行えるようになります。 エンベデッド環境でも使える機能自体は同じなのですが、若干注意する点があり、それを踏まえつつ以下に紹介させていただきます。(Java Mission Controlの一般的なことについては、ページ最下部のリンクを参照してください) 1. Java Mission Controlが利用可能な、 Javaエンベデッドプラットフォーム  JMXコンソール(MBeanサーバー)   → Java SE Embedded 8のCompact 3とFull JREでサポート(ただしMinimal版VMは未サポート)  フライト・レコーダ   → Java SE Embedded 8のFull JREのみサポート(ただしMinimal版VMは未サポート)  ※ ちなみに現状、Java ME 8では利用することができません。 2. 監視対象となるJVMの起動方法     2.1. JMXコンソール(MBeansサーバ)を使う場合  >java -Dcom.sun.management.jmxremote=true               -Dcom.sun.management.jmxremote.port=7091                # ポート番号の設定              -Dcom.sun.management.jmxremote.authenticate=false   # 認証設定              -Dcom.sun.management.jmxremote.ssl=false                  # SSL有無              -jar appliation.jar ※ 監視対象デバイスにつながらない場合は、以下のJVM起動オプションを追加してみてください。 "-Djava.rmi.server.hostname=192.168.0.20"                     # 監視対象デバイスのIPアドレス/ホスト名 もしくはこちらのリンク(http://docs.oracle.com/javase/7/docs/technotes/guides/management/faq.html)の5に書かれている内容について調べて見てください。     2.2. フライト・レコーダを使う場合   JVMの起動オプションに以下を追加してください。   "-XX:+UnlockCommercialFeatures -XX:+FlightRecorder" 3. Java Mission Controlの起動方法。 JDKに同梱されているjmcコマンドを起動します。  >$JAVA_HOME/bin/jmc 4. Java Mission ControlからJVMへの接続方法  Java Mission Controlの「ファイル」→「接続」→「新規接続の作成」を開き、以下を設定してください。 - 監視対象となるデバイスのIPアドレス・ポート番号を設定します。ポート番号はJVMの起動オプションで指定したものを使います。 - 必要に応じて認証情報(ユーザ名・パスワード)を指定してください。 - 接続名は任意のものでOKです。 設定が終わったら接続のテストを行い、問題がなければ設定画面を閉じてください。接続が完了していれば、自動的に監視対象となるJavaプロセスがJava Mission Controlに表示されます。 参考URL) http://www.oracle.com/technetwork/jp/java/javaseproducts/mission-control/index.html http://www.oracle.com/technetwork/jp/java/javaseproducts-old/mission-control/java-mission-control-wp-2008279-ja.pdf http://www.oracle.com/technetwork/java/embedded/resources/tech/java-flight-rec-on-java-se-emb-8-2158734.html

今まで主にサーバ環境でのJavaの診断・監視目的で使われてきた、Java Mission Controlですが、Java SE 8 Embeddedからエンベデッド環境のJavaでも利用できるようになりました。Java Mission Controlを使うことにより、JVMやJavaアプリについての、 CPUやメモリの使用状況、 スレッドの状態、...

Java ME

Java ME Embedded 8を使ったM2Mアプリケーション開発 (3/3)

Java ME Embedded 8を使ったM2Mアプリケーション開発(2/3)の続きです。今回はRaspberry PiとNetBeansを使って、リモートデバッグを行う方法をご紹介します。NetBeansでステップ実行しながら、Raspberry Pi上で動くJavaアプリの様子をみることが可能となります。 ホストPCにはNetBeans 8.0, Java ME SDK 8, Java ME SDK 8 Plugins for NetBeans 8がインストールされており、Raspberry PiにはJava ME Embedded 8がインストールされていることが前提となります。 詳細は(1/3)(2/3)を参照してください。 1. Raspberry Piにログインして、Java ME Embedded 8のbinディレクトリ以下の、usertest.shを起動します。 >sudo ./usertest.sh 2. Java ME SDK 8のデバイスマネージャにRaspberry Piを登録します。 デバイスマネージャの起動は、Java ME SDK 8がインストールされたWindows PCにておこないます。 ”SDKのインストールフォルダ”\bin\device-manager.exeをダブルクリックすると下記の画面が表示されます。  Windowsのタスクバーからもデバイスマネージャを開くことも可能です。 デバイスマネージャの追加ボタンからRaspberry PiのIPアドレスを登録すれば終わりです。 3. NetBeansでリモートデバッグを行うための設定を行います。 1. Java ME Embedded 8を使ったM2Mアプリケーション開発 (1/3)で作成したサンプルアプリ(ネットワークのデモ (MEEP))のプロジェクトを右クリックし、プロパティ画面を開きます。 2. カテゴリ→プラットフォームを選択し、以下のように設定を行ってください。     Java MEプラットフォーム: Oracle Java (TM) Platform Micro edition SDK 8.0     デバイス: EmbeddedExternalDevice1  3. ソースコードの任意の場所にブレークポイントを設定し、プロジェクトのデバッグを行います。デバッグ実行はCtrl + F5もしくは、デバッグメニューより開始することができます。デバッグ実行を開始すると、Raspberry Piにアプリが自動的にインストールされ、通常のデスクトップでのデバッグと同じ感覚で開発を行うことが可能になります。  こちら→http://docs.oracle.com/javame/8.0/get-started-rpi/debugging.htm#BABCIJHAにも詳細を記載していますので、ご参照ください。

Java ME Embedded 8を使ったM2Mアプリケーション開発(2/3)の続きです。今回はRaspberry PiとNetBeansを使って、リモートデバッグを行う方法をご紹介します。NetBeansでステップ実行しながら、Raspberry Pi上で動くJavaアプリの様子をみることが可能となります。 ホストPCにはNetBeans 8.0, Java ME SDK 8, Java...

Java ME

Java ME Embedded 8を使ったM2Mアプリケーション開発 (2/3)

Java ME Embedded 8を使ったM2Mアプリケーション開発 (1/3)で作成したサンプルアプリを、Raspberry Pi(Model B)上で動かす手順をご紹介したいと思います。 Raspberry Piのセットアップ 手順はこちらを参照 → Raspberry Pi で JavaFX - かんたん3ステップ PuTTY(ターミナルエミュレータ)のダウンロード PuTTYはコマンドラインを使ってアプリのインストール等(詳細は後述)をホストPCから行う場合に使います。またscpやsftpでRaspberry Piにファイルを転送する場合にも使うことが可能です。 ダウンロードはこちら → http://www.putty.org/ Java ME Embedded 8のダウンロード ダウンロードリンクhttp://www.oracle.com/technetwork/java/embedded/downloads/javame/index.htmlから、oracle-jmee-8-0-rr-raspberrypi-linux-bin.zipというファイルがダウンロードされますが、解凍すると以下のディレクトが含まれています。  /appdb - Javaプラットフォームが内部で使用するためのディレクトリです。  /bin - Javaの実行ファイルや設定ファイル等が格納されています。  /legal - Legal関連の文書が格納されています。  /lib - Raspberry Pi上でアプリ(IMlets)をコンパイルする時に使用されます。 /util - ホストPC(Windows)のコンソールからリモートデバッグを行う際に使用します。 Raspberry PiへJava ME Embedded 8を転送 上記でダウンロードしたファイル(oracle-jmee-8-0-rr-raspberrypi-linux-bin.zip)をRaspberry Piに転送します。転送はsftpもしくはscpで行います。Windowsの場合PuTTYを使って送信することも可能です。ターミナルでRaspberry Piにログインし、転送したファイルをお好みの場所へ展開後、appdbとbinディレクトリのアクセス権を変更します。 >chmod -R 755 appdb bin HTTP Proxyの設定(オプション) もしアプリがRaspberry PiからHTTP接続を行い、proxyサーバを必要とする場合、bin/jwc_properties.iniファイルにproxyサーバの情報を登録します。 com.sun.midp.io.http.proxy.host = proxy.mycompany.comcom.sun.midp.io.http.proxy.port = 80 Raspberry Piへサンプルアプリを転送 Java ME Embedded 8を使ったM2Mアプリケーション開発(1/3)で開発したサンプルアプリ(NetworkDemo.jar)をPuTTY等を使って、Raspberry Piへ転送します。NetworkDemo.jarはNetBeansのプロジェクトフォルダの下のdistフォルダ以下に保存されています。ここでは、転送したJarファイルをJava ME Embedded 8のbinディレクトリの下にコピーします。 アプリの起動  コマンドラインを使った起動  ターミナルエミュレータからRaspberry Piに入り、Java ME Embedded 8のbinディレクトリまで移動します。binディレクトリには下記のシェルが含まれています。コマンドのサンプルもその下に書いておきます。 listMidlets.sh [SUITE_ID or NAME]     --- インストール済みのアプリとステータス等を表示します。installMidlet.sh <URL> [<URL label>] --- アプリをインストールします。JARファイルを引数に指定します。removeMidlet.sh <SUITE_ID>             --- インストール済みのアプリをアンインストールします。sudo runSuite.sh <SUITE_ID or NAME> [IMLET_ID or classname] --- 指定されたアプリを起動します。アプリの起動後は標準出力へLogが出力されます。 インストール pi@raspberrypi ~/pi/bin $ sudo ./installMidlet.sh NetworkDemo.jar Java is starting. Press Ctrl+C to exit The suite was successfully installed, ID: 2 インストールが成功すると、上記の”The suite was successfully installed”が表示され、IDが自動的に割り当てられます。IDはコンソールに表示されるメッセージにて確認することが出来ます。 注)インストール時に、下記のメッセージが 表示されることがあります。これはホストPC上にインストールされたデバイスマネージャ(Java ME SDK 8の一部です)に、デバイスが登録されていない場合に表示されるメッセージです。 動作上問題はありませんが、デバイスマネージャにRaspberry Piを登録することにより、メッセージは表示されなくなります。 [ERROR][AMS] iso=1:SEnding the notification: com.oracle.midp.proxy.InstallCommand@7114ea81. FAILED,proxy is disconnected 起動pi@raspberrypi ~/pi/bin $sudo ./runStuite.sh 2 引数には、アプリの名称もしくは、インストール時に割り当てられたIDを指定します。また起動後のアプリのログ等は標準出力へ表示されます。アプリを終了する場合はCtrl + Cで行ってください。 アンインストール pi@raspberrypi ~/pi/bin $ ./removeMidlet.sh 2 引数には、インストール時に割り当てられたIDを指定します。  インストール済みアプリの確認 pi@raspberrypi ~/pi/bin $ ./listMidlets.sh Java is starting. Press Ctrl-C to exit Suite: 2     Name: NetworkDemo     Version: 1.0     Vendor: Oracle     MIDlets:         Socket Demo: socket.SocketMidlet 今回は、 いち早くRaspberry Pi上にてアプリを動作させる方法について記載を行いました。元文書 → http://docs.oracle.com/javame/8.0/get-started-rpi/debugging.htm#BABCIJHAを見ていただくと、WindowsのホストPCからコマンドラインでアプリを起動させる方法も紹介しております(Starting the Developer Agent Program on the Desktopの章)。 必要に応じて、上記リンクをご参照いただければと思います。

Java ME Embedded 8を使ったM2Mアプリケーション開発 (1/3)で作成したサンプルアプリを、Raspberry Pi(Model B)上で動かす手順をご紹介したいと思います。 Raspberry Piのセットアップ 手順はこちらを参照 → Raspberry Pi で JavaFX - かんたん3ステップ PuTTY(ターミナルエミュレータ)のダウンロード PuTTYはコマンドラインを使っ...

Java ME

Java ME Embedded 8を使ったM2Mアプリケーション開発 (1/3)

Java ME Embedded 8を使ったM2Mアプリケーションの開発手順をご紹介したいと思います。今回は、NetBeans 8.0を使い、エミュレータ上で簡単なサンプルアプリを動作するところまで行いたいと思います。 また、Java ME Embedded 8は、センサーデバイスや通信モジュール等の小型デバイスをターゲットとしたJavaの実行環境で、従来のもの(Java ME Embedded 3.x)と比較すると以下の特徴を備えており、開発効率がさらに上がっています。 言語仕様がJava SE Embedded 8と同期しており、APIもSE 8のサブセット版を実装していることから、SEとのソースコードの共有化が可能 New IO, コレクションフレームワーク等、SEで利用されている便利なAPIを追加 モバイル通信系のAPIの拡張。また従来通りGPIO, I2C等の低レベルH/WアクセスAPIも実装 開発用PCへのJava SEのインストール 開発用PCはWindows 7を想定しています。また開発用PCにはJava SE 7もしくは8の最新版をインストールしてください。 Java ME SDK 8のインストール 下記のリンクからJava ME SDK 8をダウンロードします。ダウンロードした.exeファイルをダブルクリックし、インストールを行います。インストール先は任意の場所を選んでください。 http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html NetBeans 8.0のインストール こちら → https://netbeans.org/downloads/から、 ”JavaSE/EE/すべて”のいずれかをダウンロードしてください。 またインストール手順はこちらです。 → https://netbeans.org/community/releases/80/install_ja.html Java ME SDK 8 Plugins for NetBeans 8のインストール 1. NetBeans向けのPluginを下記のリンクからダウンロードし、任意の場所で解凍します。http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html 2. NetBeansを起動し、ツール -> プラグインメニューを開きます。 3. 古いバージョンのPluginがインストールされている場合はアンインストールを行います。 新規インストールの場合はスキップしてください。 以下はアンインストール手順となります。  インストール済タブの詳細の表示にチェックを入れ、インストール済みPluginの一覧を表示します。 Java ME SDK ToolsとJava ME SDK Demosがあれば、チェックを入れ、アンインストールボタンをクリックします。アンインストール後はNetBeansを再起動してください。 4. NetBeans再起動後、ツール -> プラグインメニューを開き、ダウンロード済タブを開きます。 5.  プラグインの追加ボタンを選択し、1でダウンロードしたPluginを解凍したフォルダを参照します。.nbmファイルをすべて選択し、開くボタンを押します。 6. ダウンロード済タブを開くと、 ダウンロードしたPlugin一覧が表示されるので、 それらをすべて選択した後、インストールボタンを押します。 7. Pluginのインストールが開始されます。 ライセンス契約条件に同意し、インストールを完了させてください。インストール完了後は、NetBeansを再起動します。 8. 再びツール -> プラグインメニューを開き、インストール済タブを開きます。Java MEがインストールされており、アクティブとなっていればインストールが正常にできています。 Java ME Embedded 8の開発用プラットフォームのインストール 1. NetBeansを起動し、ツール -> Javaプラットフォームを選択します。 2. プラットフォームの追加ボタンを押下します。 3. Javaプラットフォームの追加画面が開くので、Java ME CLDCプラットフォーム・エミュレータを選び、次>ボタンを押下します。 4. プラットフォームを検索するディレクトリを選択してください画面にて、上記手順の”Java ME SDK 8のインストール"で行った、SDKのインストールディレクトリを選択します。 5. ME SDK 8のプラットフォームが正常に選択されたことを確認し次 >ボタンをクリックし、プラットフォームが問題なく検出できれば、終了ボタンを押して追加を終了します。 サンプルアプリの起動 上記に引き続いて、 新規プロジェクトを作成しサンプルアプリを作ります。 1.  ファイル -> 新規プロジェクトを選ぶと、新規プロジェクトの作成ダイアログが表示されます。カテゴリからサンプル -> Java ME SDK 8.0を選択し、ネットワークのデモ (MEEP)を選んだ後、次>ボタンを押してください。 2. プロジェクト名とプロジェクトの場所を任意に設定し、終了ボタンを押してください。 3. プロジェクトが新規に作成されるので、プロジェクトを選択し、右クリックメニューから、消去してビルドを行った後、同じく右クリックメニューから、プロジェクトを実行してください。 4.  アプリが正常起動すると、エミュレータが自動起動し、アプリが起動できていることが確認できます。 5. NetBeansの出力画面では、アプリが標準出力へ出力した以下のメッセージが表示されます。 Waiting for connection on port 5000 上記のように、Java ME Embeddedのアプリケーションはデバイスが無くても、エミュレータにより簡単に開発ができることがご理解いただけたかと思います。さらに詳しい情報は以下をご参照下さい。 http://docs.oracle.com/javame/8.0/javame-dev-tool.htm

Java ME Embedded 8を使ったM2Mアプリケーションの開発手順をご紹介したいと思います。今回は、NetBeans 8.0を使い、エミュレータ上で簡単なサンプルアプリを動作するところまで行いたいと思います。 また、Java ME Embedded 8は、センサーデバイスや通信モジュール等の小型デバイスをターゲットとしたJavaの実行環境で、従来のもの(Java ME Embedded...

Java ME

Java ME Embedded 3.4 for Qualcom IOE

9月末に行われたJavaOne 2013でJava ME 8 Early Access版が公開されました。Java ME 8の正式版のリリースは来年初旬に予定されておりますが、我々は引き続きJava ME Embedded 3.xシリーズのアップデートも行います。今回はJava ME Embeddedの最新バージョン、Java ME Embedded 3.4のご紹介です。Java ME Embedded 3.4はバージョン3.3をベースにしておりますが、Qualcomm IOE("Internet Of Everything") developer platformをサポートしております。Qualcomm IOE developer platform: ・QSC6270T processor with 64 MB DDR RAM and 128 MB NAND Flash・Tri-band UMTS/HSDPA + quad-band GSM, SIM slot・2.4 GHz WiFi a/b/g/n・GPS・Supported I/O: SPI, I2C, GPIO, ADC, UART, SD card, on-board accelerometer, light + temp sensorさらにQualcomm IOE platformとPCをUSBでつないで開発、デバッグできるようJava ME SDKのアップデートも行いました。このリリースにより、Java ME EmbeddedはQualcommのエコシステムを支えることができるようになり、また組み込みJavaの未来へ大きく前進する機会となるでしょう。Java ME Embedded 3.4とJava ME SDK 3.4は開発・評価用に無料でOTNからダウンロードすることができます。

9月末に行われたJavaOne 2013でJava ME 8 Early Access版が公開されました。 Java ME 8の正式版のリリースは来年初旬に予定されておりますが、我々は引き続きJava ME Embedded 3.xシリーズのアップデートも行います。 今回はJava ME Embeddedの最新バージョン、Java ME Embedded 3.4のご紹介です。Java ME...

Java SE

リコーMFPにJava SEを搭載

オラクルの顧客事例サイトに、株式会社リコー様のデジタル複合機(MFP)へのJava SE搭載事例が掲載されました。2003年からJava MEを採用頂いていましたが、2011年よりJava SEを搭載しています。この事例サイトでは、Java採用に至る背景や、Java MEからSEへの移行の経緯などが紹介されています。 株式会社リコー様リコー、MFPを中核とした「オフィスの生産性向上」と「ワークスタイル変革」の提供を目指し、プリントエンジンを制御するコントローラにJava SE を搭載株式会社リコーは、事業の中核となる画像&ソリューション事業において、MFPのプリントエンジンを制御するためのコントローラに、Java Platform, Standard Edition(Java SE)を搭載。顧客の課題解決やニーズに合わせた画像機器およびソリューションを提供することで、オフィスの生産性向上やワークスタイルの変革に貢献することを目指している。

オラクルの顧客事例サイトに、株式会社リコー様のデジタル複合機(MFP)へのJava SE搭載事例が掲載されました。2003年からJava MEを採用頂いていましたが、2011年よりJava SEを搭載しています。この事例サイトでは、Java採用に至る背景や、Java MEからSEへの移行の経緯などが紹介されています。 株式会社リコー様 リコー、MFPを中核とした「オフィスの生産性向上」と「ワークスタイル...

Java Embedded

楽天が東光電気製ゲートウェイでデマンドレスポンス推進

2013年5月27日に、楽天株式会社様が、Java SE Embeddedを搭載した東光電気製ゲートウェイSTiNC IIを活用し、OpenADR準拠のデマンドレスポンスを推進すると発表しています。管理・制御ソフトウェアには、米国Wireless Glue Networks社のOpenADR対応Javaアプリケーションが使用されます。プレスリリースについては以下をご覧下さい。 プレスリリース「楽天、グローバルエンジニアリングと協業し、九州電力管内でOpenADR標準対応のデマンドレスポンスを推進—東光電気、米WGN社による新たなシステムを採用」 東光電気様のSTiNC IIは、Java SE Embeddedを採用したARM Coretex-A8搭載Linuxゲートウェイ装置で、1-Wire (MicroLAN)やRS-485などの本体端子で直接センサー類に接続し、標準搭載のJavaアプリケーションでエネルギー管理が行なえます。

2013年5月27日に、楽天株式会社様が、Java SE Embeddedを搭載した東光電気製ゲートウェイSTiNC IIを活用し、OpenADR準拠のデマンドレスポンスを推進すると発表しています。管理・制御ソフトウェアには、米国Wireless Glue Networks社のOpenADR対応Javaアプリケーションが使用されます。プレスリリースについては以下をご覧下さい。 プレスリリース「楽天、グ...

Java SE

オムロンのPLCにJava SEを採用

オラクルマガジンVol.16 2013年5月号の国内最新導入事例に、オムロン株式会社様の事例が掲載されました。産業用制御機器であるPLC (Programmable Logic Controller)にJava SEが採用されています。 オムロン株式会社様最新FAコントローラの開発プラットフォームにJavaを採用 シンプル・確実・高速にデータベースと接続オムロン株式会社(以下、オムロン)の事業の1つ、制御機器、およびファクトリーオートメーション(FA)システム事業を運営するインダストリアルオートメーションビジネスカンパニーは、FA用コントローラからセンサー、スイッチ、リレー、セーフティ機器まで、10万仕様を超える製品を提供。制御機器の分野において約40%という国内トップシェアを誇っている。さらなる競争優位性向上を目指して同カンパニーは、Sysmacマシンオートメーションコントローラ「NJシリーズ」のデータベース接続プラットフォームとして「Java Platform, Standard Edition(Java SE)」を採用した。

オラクルマガジンVol.16 2013年5月号の国内最新導入事例に、オムロン株式会社様の事例が掲載されました。産業用制御機器であるPLC (Programmable Logic Controller)にJava SEが採用されています。 オムロン株式会社様最新FAコントローラの開発プラットフォームにJavaを採用 シンプル・確実・高速にデータベースと接続オムロン株式会社(以下、オムロン)の事業の1つ、...

Event

Java Day Tokyo 2013

[2013年5月31日更新] 2013年5月14日(火)秋葉原UDXにてJava Day Tokyo 2013が開催されました。Java Embeddedのセッションもいくつかあり、展示コーナーではJava搭載のデバイスやデモを紹介しました。 OTNのページに当日のセッション資料と動画(一部を除く)が公開されています。Java Embeddedに関連するセッションを紹介します。 [L-1] 基調講演Java Embeddedの開発責任者Nandini Ramaniらが、Java Embeddedを含む最新情報を紹介しました。 [B-2] Internet of ThingsにおけるJava: Small, Smart, Connected (Java ME Embedded) Java MagazineのEmbedded特集号(第9号)のメイン特集で熱く語っているTerrence Barr (シニアテクノロジスト&製品マネージャー)が、Internet of Things (モノのインターネット)時代にJavaがいかに重要か、M2Mを支えるD2Dビジョンの紹介と、スマートデバイスに最適なJava ME Embedded (CLDCベースの新製品)について、Angela Caicedo(テクノロジスト エバンジェリスト)と共にデモを交えながら紹介しました。 [B-1] Raspberry Pi NightHacking (Java SE / JavaFXを楽しもう)JavaFXで有名なStephen Chin(Javaテクノロジー アンバサダー)が、NetBeansとSceneBuilderを使ってJavaFXアプリケーションを作成し、安価なARMデバイスRaspberry Piで実行するデモを行ないました。後半にはAngela Caicedo(テクノロジスト エバンジェリスト)がLCDやセンサーを接続したRaspberry Piで奥行きのある3Dデモを紹介しました。 [C-3] Device to Data Centerを実現するJava Embedded SuiteD2Dの中でデバイスとデータセンターの中継の役割を果たすゲートウェイに最適な、Java SE、Java DB、GlassFish (Embedded版)を統合した新製品Java Embedded Suite、およびそのオプション製品である、リアルタイムにイベント処理を行なうOracle Event Processing (OEP) Embedded版(3月末にダウンロード公開開始)について紹介しました。このセッションの動画はありませんが、WebLogic Channelのレポート記事をご覧下さい。 [A-4] タブレット用のJavaFXアプリケーション開発Jim Weaverが、MicrosoftのタブレットデバイスSurface Proを使い、JavaFXのマルチタッチ機能を使ったプログラミングについて紹介しました。 Java Embeddedデモ展示コーナー

[2013年5月31日更新] 2013年5月14日(火)秋葉原UDXにてJava Day Tokyo 2013が開催されました。Java Embeddedのセッションもいくつかあり、展示コーナーではJava搭載のデバイスやデモを紹介しました。 OTNのページに当日のセッション資料と動画(一部を除く)が公開されています。Java Embeddedに関連するセッションを紹介します。 [L-1] 基調講演J...

General

Java Magazine日本版第9号(組み込みJava特集号)

Java Magazine日本版第9号が公開されています。この号は組み込みJavaの特集号なので、組み込みJavaに関する記事がたくさん掲載されています。 第9号の記事タイトルは次の通りです。 組込みコンピューティングの時代 組込み型アプリケーションでJavaを使う10の理由 Javaと25ドル・ボードの融合 マネーの未来 Webサービスのセキュリティ入門 invokedynamicの神秘を解く Java 8のJavaコンパイラ・プラグイン セキュアなJava EE認証 WebアプリケーションおよびJavaクライアント・アプリケーションとソーシャル・メディアとの統合 IMS Services API—JSR 281入門 モバイルへの転換 Akkaフレームワークを使用したアクターベースのシステムの構築 組込みに関する問題に挑戦 目次から各記事を読むこともできますし、全章をまとめてダウンロードすることもできます。

Java Magazine日本版第9号が公開されています。この号は組み込みJavaの特集号なので、組み込みJavaに関する記事がたくさん掲載されています。 第9号の記事タイトルは次の通りです。 組込みコンピューティングの時代 組込み型アプリケーションでJavaを使う10の理由 Javaと25ドル・ボードの融合 マネーの未来 Webサービスのセキュリティ入門 invokedynamicの神秘を解く Java...

Java Embedded

新しいRaspberry Pi用Java ME Embedded 3.3 (早期アクセス版)

原文: http://terrencebarr.wordpress.com/2013/03/14/new-java-me-embedded-3-3-on-raspberry-pi-ea/ Oracleは小型の組み込み市場への新たな取り組みとして、JavaOne 2012でJava ME Embedded 3.2を発表しました。 本日、その後継である2つのエキサイティングなリリースを発表しました: Raspberry Pi用Java ME Embedded 3.3 (早期アクセス版) Java ME SDK 3.3 (早期アクセス版) このリリースにより、Java開発者は、豊かな機能を持つ組み込みJava MEアプリケーションを開発し、人気のRaspberry Piボード上で実行できるようになりました。この新バージョンには多くの新機能や改良点が盛り込まれています: Linux Wheezy (hard float版)を搭載するRaspberry PiモデルBのサポート 複数のアプリを信頼性をもって並行処理するマルチタスキングVM アプリ配信・管理機能のフルサポート デバイスアクセスAPIの強化。GPIO、UART、I2C、SPIで接続したデバイスにJavaから直接アクセスすることが可能に ネットワークとメモリの監視ツール その他、Java ME Embedded実行環境およびJava ME SDK双方でのさまざまな機能拡張 Simon Ritterのwebcast、"Java ME Embedded on the Raspberry Pi"で短い概要紹介をご覧ください。  Java ME EmbeddedやJava ME SDKについて、さらに調べたりダウンロードするにはこちらへどうぞ。概要説明やスタートガイド、FAQ、そして完全なドキュメントも用意されています。

原文: http://terrencebarr.wordpress.com/2013/03/14/new-java-me-embedded-3-3-on-raspberry-pi-ea/ Oracleは小型の組み込み市場への新たな取り組みとして、JavaOne 2012でJava ME Embedded 3.2を発表しました。 本日、その後継である2つのエキサイティングなリリースを発表しました: Ras...

Event

RICOH & Java Developer Challenge Plus 2012

2013年1月23日にリコー様の学生向けJavaプログラミングコンテスト「Ricoh & Java Developer Challenge Plus 2012」最終選考会が開催され、プレスリリースやレポートが公開されています。今年度の大会では、対象機器を従来の複合機のみからプロジェクターにも拡げ、タブレットやクラウドとも連携した様々な作品が発表されました。 オラクル賞は北見工業大学の「北見工業大学医療画像研究室+」チームが受賞し、トロフィ代わりの社員犬キャンディのぬいぐるみをはじめ、OracleやJavaのロゴ入りグッズ一式が授与されました。発表本番ではトラブルのためプロジェクターへの出力が正常に動作しなかったのですが、JavaFXを採用したことが評価されました。 その他の受賞チームや選考会の様子は以下のサイトをご覧下さい。 2013年1月24日 株式会社リコー ニュースリリース「Javaビジネスアプリの学生プログラミングコンテスト - インタラクティブサイネージを提案した産業技術大学院大学がグランプリ獲得」 2013年1月25日 マイナビニュース「挑戦することに意義がある!」 2013年2月8日 いまじおボットが行く!! Vol.8「最終選考会 潜入レポート2012」

2013年1月23日にリコー様の学生向けJavaプログラミングコンテスト「Ricoh & Java Developer Challenge Plus 2012」最終選考会が開催され、プレスリリースやレポートが公開されています。今年度の大会では、対象機器を従来の複合機のみからプロジェクターにも拡げ、タブレットやクラウドとも連携した様々な作品が発表されました。 オラクル賞は北見工業大学の「北見工業大学医療...

Java Embedded

スマートグリッドをよりスマートにする組み込みJava

ITmedia TechTargetジャパンにて、スマートグリッドにおける組み込みJavaのホワイトペーパー(PDF 18ページ)が公開されています。スマートメーター、コンセントレーター、ゲートウェイ、宅内ディスプレイ、スマート家電などにJavaがどのような役割を果たすかを解説しています。以下は目次からの抜粋です。 新たなスマート・グリッドとJavaの役割 スマート・グリッドの実装に関する課題 ユーザー・インタフェース スマート・グリッド・アプリケーションにおけるJavaとAndroid リモート管理およびデバイス管理 ホワイトペーパー「スマート・グリッドをよりスマートにする組み込みJava」は、ITmedia TechTarget会員限定で無料でご覧頂けます。

ITmedia TechTargetジャパンにて、スマートグリッドにおける組み込みJavaのホワイトペーパー(PDF 18ページ)が公開されています。スマートメーター、コンセントレーター、ゲートウェイ、宅内ディスプレイ、スマート家電などにJavaがどのような役割を果たすかを解説しています。以下は目次からの抜粋です。 新たなスマート・グリッドとJavaの役割 スマート・グリッドの実装に関する課題 ユーザー・...

JavaFX

Raspberry Pi で JavaFX - かんたん3ステップ

原文: http://javafx.steveonjava.com/javafx-on-raspberry-pi-3-easy-steps/ 待望のRasberry Pi用JavaFX開発者プレビューがついに公開されました! Rasberry Piは、小規模の組み込み開発用に、また教育用の低コストコンピュータとして、そしてホビイストのおもちゃとしても素晴らしいプラットフォームです。 モデルBはたったの$35で、512MB RAM、700MHz ARMプロセッサ、HDMI、コンポジット、オーディオ、Ethernet、そして2つのUSBポートが付いています。 Rasberry Piでどんなことができるでしょうか?私たちがDevoxx用に制作した、宇宙船が飛び去るアニメーションでカンファレンスのスケジュールを表示する デジタルサイネージが良い例です: アップデート:もしPi上でのJavaの性能に不安があるなら、fxexperience.comでのRich Bairのポストを読んでみてください: http://fxexperience.com/2012/12/javafx-on-raspberry-pi/ よしやってみよう、と思ったなら、次の簡単な3ステップでPi上でJavaFXを動かすことができます: Raspberry PiにLinuxをインストールする Java/JavaFX 8をダウンロードしてPiにコピーする PiにJavaFXアプリをデプロイして実行する この記事では読者がPiを持っていると想定しています。どこでPiを買えるのか、電源はどうするのか、といった疑問については Raspberry Piの公式サイトをチェックすることをお勧めします。 Step 1 – Raspberry PiにLinuxをインストールする 最新のJava 8リリースはhard floatです。 性能にも優れ、Raspberry Piの推奨Linuxビルドもhard floatなので、これは望ましいことです。softやsoftfpとつくビルドはhard floatのJVMとは非互換ですので避けてください。 ノート:なぜ浮動小数点にそんなにこだわるかって?ローエンドの組み込みシステム(例えばARM Cortex M0-M3)では、コスト節約のため浮動小数点演算ハードウェアが省略されるからです。 幸運にも、Raspberry Piで使われているARMv6チップは真の浮動小数点演算サポートを備えています。 SDカード上にLinuxをセットアップするには、Windows、Mac、LinuxいずれかのデスクトップとSDカードリーダーが必要です。使用すべきディストリビューションは最新のRaspbian Wheezyのhard floatビルドです。 これはRaspberry Piダウンロードサイトでの推奨インストールでもあります: http://www.raspberrypi.org/downloads イメージを焼き付ける方法はいくつかありますが(詳しくはこちら)、基本的には以下に集約されます: Windows: Win32DiskImager を使う Mac: RPi-sd Card Builder を使う Linux: dd コマンドを使う SDカードができあがったら、Raspberry Piを箱から出してSDカードを差し込み、そのへんのモニタかTVに接続してからUSB電源(5V 700mA以上)をつなぎましょう。 注意:順序は重要です!Piの電源を入れる前にHDMIモニタをつながないとコンポジット出力と認識されます。つまり、LEDが点灯しているのに画面がでない場合、Piを再起動(電源を抜き差しする)してみるべきです。 この時点で、Piがブートして設定画面が表示されます。 以下のいくつかの項目については設定の変更を検討すべきでしょう: CPU/GPUメモリ配分 – グラフィックスが重要なアプリをスムースに走らせるために、GPUに少なくとも128MBを与えましょう(JavaFXには重要!) ロケール/キーボード/タイムゾーンの変更 – デフォルト設定はイギリスです。それ以外の国の方はこの設定を変えないとキーバイドが狂ってイライラすることになるでしょう オーバースキャン – もしディスプレイの端に黒い帯があるなら、これをオフにすればフル解像度を使うことができます ルートファイルシステムの拡張 – 全スペースを使うようにオンラインでリサイズできます(デフォルトイメージでのルートパーティションはたった2GB)。 実施を強く推奨しますが、大容量カードではかなり時間がかかります SSH – ネットワーク経由でPiにアクセスする場合はこれをオンにしてください (これは、行儀の悪いJavaFXプロセスをリブートなしで止める唯一の手段です) Rasberry Pi用JavaFXの公式ドキュメントでは、設定ファイル (/boot/config.txt) の中の以下の行のコメントを外して、フレームバッファを720pに設定することが推奨されています: framebuffer_width=1280framebuffer_height=720 これは厳密には必須ではありませんが、Piが送り出すピクセル数を減らすので、よりよい性能を得ることができます。これを行うなら、ピクセルがアップスケールされないように、Piが必ず720の解像度で動作するようにも設定すべきです。自分がしていることが理解できないなら(そしてディスプレイを無効にしてしまったときのために、リモートログインしたsshターミナルを用意せずに)ディスプレイ設定をいじってはいけません。 HDMIディスプレイモードについてのより詳しい情報はこちらのドキュメントを参照してください。 Step 2 – Java/JavaFX 8をダウンロードしてPiにコピーする Pi互換のJava/JavaFX 8ビルドはこちらからダウンロードできます: http://jdk8.java.net/fxarmpreview Piがイーサネット経由でネットワークにつながっているなら、直接デバイスにダウンロードできます。そうでなければ、sftp(ssh経由)またはUSBメモリなどを使ってコピーしてください。 ダウンロードできたら、好きな場所で解凍します: sudo tar -zxvf file_name -C /opt そして次のようなコマンドをたたいてjavaを実行してみましょう: sudo /opt/jdk1.8.0/bin/java -version Step 3 – PiにJavaFXアプリをデプロイして実行する JavaFXデスクトップアプリケーションの大半は、単にjarファイルをコピーしてローカルに実行するだけでPi上でも動きます(ただし、WebView や MediaView に依存するアプリケーションは例外です。これらは現在の開発者プレビュー版では未実装です)。 Pi用のJavaFXアプリ開発の第一歩にぴったりなのは、Scene Builderを使って視覚的に手早くユーザインタフェースを組み立て、Piにデプロイする方法です。実際、私は昨晩 Linux Users’ Group of Davis (LUGOD) でこれを実演し、非常に鋭い聴衆のみなさんの助けを借りて、サンプルアプリを素早く組み上げました(途中、聴衆のみなさんからいくつかlinuxコマンドの技を学ぶこともできました)。 この私たちが15分で作ったアプリは、お試し用のサンプルとしてGitHubにポストしておきました: https://github.com/steveonjava/LUGOD-Pi-Test Piで動かすには、このソースをお気に入りのIDEで(またはコマンドラインから)ビルドしてjarファイルを作ります。このjarファイルをPiにコピーして、次のようなコマンドで実行するだけです: sudo /opt/jdk1.8.0/bin/java -Djavafx.platform=eglfb \-cp /opt/jdk1.8.0/jre/lib/jfxrt.jar:LUGODTest.jar lugodtest.LUGODTest 以下はScene Builderプロジェクトの写真と、実際にLUGODミーティング中にRasberry Piで実行した出力結果です: でも、一番印象に残るデモはやはり自分で作ったものです。ぜひ自作のJavaFXアプリを試してみて、それらのアプリへのポインタを下のコメント欄に残してください!

原文: http://javafx.steveonjava.com/javafx-on-raspberry-pi-3-easy-steps/ 待望のRasberry Pi用JavaFX開発者プレビューがついに公開されました!...

Java SE

新セキュリティ機能を搭載した Oracle JDK 7u10 をリリース

原文: https://blogs.oracle.com/henrik/entry/oracle_jdk_7u10_released_with 数日前、JREとJDK 7のupdate 10がリリースされました。このリリースでは以下の新しいプラットフォームのサポートが追加されました: x86-64上のWindows 8 注:新しいUI(Metro)モードは非サポート Windows 8のInternet Explorer 10 Mac OS X 10.8 (Mountain Lion) またこのリリースでは、Javaアプレットやwebstartアプリのセキュリティを強化する次のような新機能が導入されています: Javaランタイムは、自身が最新のセキュリティ基準に更新されているかどうかを確認します。古いバージョンのJavaで非署名アプレットを実行しようとすると、更新を促す警告ダイアログが表示されます。 Javaランタイムには有効期限がハードコードされており、この期限より前に新バージョンがリリースされることが想定されています。もしこの期限までに更新を確認できなかった場合、Javaランタイムはこれを安全ではないと見なし、アプレットの実行前には常に警告するようになります。 Javaコントロールパネルには、セキュリティレベル設定(低 - 中 - 高 - 非常に高)や、Javaアプレットとwebstartを完全に無効にできるオプションが含まれるようになりました。このレベルは、Javaランタイムが非署名コードを実行できるか、できる場合ユーザにどのような警告を表示するか、といったことを制御します。 セキュリティ設定の詳細についてはドキュメントをご覧ください。以下はスクリーンショットの例です。 新しいJREとJDKのアップデートはOTNから入手できます。このリリースに関するより詳しい情報はリリースノートを参照してください。 

原文: https://blogs.oracle.com/henrik/entry/oracle_jdk_7u10_released_with 数日前、JREとJDK 7のupdate 10がリリースされました。このリリースでは以下の新しいプラットフォームのサポートが追加されました: x86-64上のWindows 8 注:新しいUI(Metro)モードは非サポート Windows...

General

Java Magazine日本版第7号公開

11月20日にJava Magazine日本版第7号が公開されました。 第7号の記事タイトルは次の通りです。 海に浮かぶJava DUKE’S CHOICE AWARDS BlueJを使用したオブジェクトの相互作用に関する学習 Webサービスのセキュリティ入門サーバーからクライアントまで Project Lambdaの展望 Java HotSpot VMの内部を探る(2):パフォーマンス解析のための統計情報 NIO.2の新ファイル・システムAPIの紹介 Java EE Connector Architecture 1.6 Payment API—JSR 229入門 Oracle Berkeley DB Java EditionのJava API(パート2) 実世界データをJavaFXコントロールに展開 Graalの将来 JavaFX Media APIコードの問題に挑戦 目次から各記事を読むこともできますし、全章をまとめてダウンロードすることもできます。Java Magazoneの最新号が出ると、Java最新情報の無料メールマガジンJava Developer Newsletterで案内されます。登録がまだの方は、是非登録して下さい。12月31日までに登録すると、抽選で1,000名様にJavaロゴグッズ、Dukeグッズがもらえるキャンペーンも実施中です。

11月20日にJava Magazine日本版第7号が公開されました。 第7号の記事タイトルは次の通りです。 海に浮かぶJava DUKE’S CHOICE AWARDS BlueJを使用したオブジェクトの相互作用に関する学習 Webサービスのセキュリティ入門サーバーからクライアントまで Project Lambdaの展望 Java HotSpot VMの内部を探る(2):パフォーマンス解析のための統計情報 NIO...

General

Java Magazine日本版第6号 / Java Developer Newsletter

すっかりお知らせが遅くなってしまいましたが、9月26日にJava Magazine日本版第6号が公開されています。 第6号の記事タイトルは次の通りです。 より確かなスプレッドシートの構築 直接の接続 BlueJを使用したオブジェクト指向の学習と教育 Webサービスのセキュリティ入門 ADAM BIENに聞く HotSpotの秘宝 クライアントJAVAアプリケーションにおけるFORK/JOINフレームワーク javacを変更する方法 JavaFX 2における遅延評価と遅延初期化、そしてカスタム・バインディング スレッドと並行処理 ワイヤレス通信を利用したデバイスのアドレス帳のバックアップ Oracle Berkeley DB Java EditionのJava API ConnectionPool.javaコードの問題に挑戦 目次から各記事を読むこともできますし、全章をまとめてダウンロードすることもできます。また、同時にJava Developer Newsletterも創刊されました。隔月でJavaの最新情報をお届けする無料メールマガジンです。登録がまだの方は、是非登録して下さい。創刊号までに間に合わなかった方でも大丈夫です。こちらで参照できます。12月31日までに登録すると、抽選で1,000名様にJavaロゴグッズ、Dukeグッズがもらえるキャンペーンも実施中です。

すっかりお知らせが遅くなってしまいましたが、9月26日にJava Magazine日本版第6号が公開されています。 第6号の記事タイトルは次の通りです。 より確かなスプレッドシートの構築 直接の接続 BlueJを使用したオブジェクト指向の学習と教育 Webサービスのセキュリティ入門 ADAM BIENに聞く HotSpotの秘宝 クライアントJAVAアプリケーションにおけるFORK/JOINフレームワーク javac...

JavaFX

JavaFX EnsembleがMac App Storeに

原文:JavaFX Ensemble in the Mac App Store // JavaFX News, Demos and Insight // FX Experience JavaFXチームのScott Kovatchが、山のような法務手続きをくぐり抜け、ついに最初のJavaFXアプリケーション(みなさんよくご存知のものです)をMac App Storeに並べることに成功しました!James Goslingに熱烈な支持をいただけたのは特に最高でした。多くのみなさんがご存知のように、Ensembleはすべてのjavadocをはじめ、アニメーションから3Dバインディングのコントロールまで、100以上の実例を含むサンプル集アプリです。また、このアプリは今後のJavaFXの進展にあわせて増強され続けていきます。最初のリリースはJavaFX 2.0でしたが、チームはその後もずっとコンテンツを追加し続けて来ました(Debbie、そしてプラハやチームのみんなに感謝!)。 Mac App Storeへの登録はなかなかの大仕事でした。まず今年になって、ネイティブアプリバンドル生成のサポートを追加しました。これは、JavaFXアプリにJREを同梱し、MacOS Xなら.appと.dmg、Windowsなら.exeと.msi、Linuxなら.debや.rpmといった、プラットフォーム固有のアプリバンドルを生成するものです。こういったアプリバンドルは、AppletやWebStartのようなリモートコード実行に依存していないので本質的に安全です。また、エンドユーザにとっては完全に「普通の」アプリになります。これはApp Storeにアプリを登録するためにも必要なことでした。そして、これらのアプリバンドルにはJavaが同梱されているため、事前にJavaをインストールしておく必要がありません。どのバージョンのJavaがインストールされているかとか、特定のバージョンをインストールさせるとかいったことに頭を悩ませる必要はもうありません。単にそのまま実行できるのです。 さあ、みなさんもぜひやってみてください。JavaFXでデスクトップアプリケーションを作り、Mac App Storeで配布してみましょう。きっと楽しいですよ! ;-)

原文:JavaFX Ensemble in the Mac App Store // JavaFX News, Demos and Insight // FX Experience JavaFXチームのScott Kovatchが、山のような法務手続きをくぐり抜け、ついに最初のJavaFXアプリケーション(みなさんよくご存知のものです)をMac App Storeに並べることに成功しました!James...

JavaFX

JavaFX Developer Preview for ARM

ARM版Linux用のJavaFX (JDK 7) Developer Previewが公開されました。デモやサンプル、自作したJavaFXアプリを実行し、フィードバックをお寄せ下さい。 対応しているデバイスは、BeagleBoard xM (Rev. C)です。タッチスクリーンでのタッチ操作もサポートし、3M M2256PWやChalkboard Electronicsの1024x600 LCDなどでの動作が確認されています。その他のシステム要件とセットアップ方法はドキュメントをご覧下さい。 XサーバーやX11ライブラリを使用せず、EGL/OpenGL ES 2.0を使用してフレームバッファにレンダリングできるため、対応したLinuxディストリビューションが必要ですが、ドキュメントではAngstrom 2011.03ディストリビューションの入手方法も紹介されています。提供されているサンプルでは、Stopwatch(ストップウォッチ)、BouncingBalls(ボールのバウンド)、Calculator(計算機)、BrickBreaker(ブロック崩し)などが動作確認されています。 JavaOneでの下記セッションや展示会場では、Raspberry PiやPanda Boardを使ったデモもありました。 CON6094 - JavaFX on Smart Embedded Devices CON5348 - Do You Like Coffee with Your Dessert? Java and the Raspberry Pi CON4538 - Java Embedded Goes Modular: How to Build Your Custom Embedded Java Runtime

ARM版Linux用のJavaFX (JDK 7) Developer Previewが公開されました。デモやサンプル、自作したJavaFXアプリを実行し、フィードバックをお寄せ下さい。 対応しているデバイスは、BeagleBoard xM (Rev. C)です。タッチスクリーンでのタッチ操作もサポートし、3M M2256PWやChalkboard...

Java Embedded

Java ME Embedded、Java Embedded Suiteリリース

JavaOne 2012がいよいよ目前となりましたが、本日、組み込みJavaの2つの新製品が発表されました: Oracle Java ME Embedded 製品ページ プレスリリース Java ME Embeddedは、リソースに制約のある小型機器に最適化された組み込みJavaプラットフォームです。CLDC + IMP-NGをベースとしており、最小わずか130 KB RAM/350 KB ROMから利用可能です。フル実装でも700 KB RAM/1.5 MB ROMで動作します。遠隔ソフトウェアアップデート機構を備え、GPIOなどに対応した独自のデバイスアクセスAPIや、XMLやWeb Service、Locationといった各種標準APIもサポートします。 ARMベースのヘッドレスな(GUIを持たない)小型機器、例えば、M2M通信モジュール、産業用コントローラ、各種センサモジュール、個人用医療機器などでの活用が期待されています。NetbBans、Eclipseのプラグインを含むSDKが用意されており、近日中にARM KEIL開発ボード(ARM Cortex M-3)用の評価バイナリもダウンロード可能になる予定です。 Oracle Java Embedded Suite 製品ページ プレスリリース Java Embedded Suiteは、組み込みJavaプラットフォームとデータベース、そしてアプリケーションサーバを1つにパッケージ化した統合ソリューションです。具体的には以下の製品が含まれています: Java SE Embedded 7 Java DB 10.8 GlassFish 3.1 Embedded Profile Jersey 1.11 前述のJava ME Embeddedより大きめの機器をターゲットにしており、動作にはJava用に64MB RAMと約70MBのROM/Flash/Disk容量が必要です。M2Mのローカルデータストア、ホームゲートウェイ、テレマティクス、ネットワーク機器、医療装置などの分野で強力なソリューションになるはずです。評価用にARMv6/7 Linux版、およびx86 Linux版バイナリがダウンロード可能です(商用利用にはライセンスが必要)。 上記2製品については、JavaOne、および併催イベントであるJava Embedded @ JavaOneで数多くのセッションやデモが予定されています。

JavaOne 2012がいよいよ目前となりましたが、本日、組み込みJavaの2つの新製品が発表されました: Oracle Java ME Embedded 製品ページ プレスリリース Java ME Embeddedは、リソースに制約のある小型機器に最適化された組み込みJavaプラットフォームです。CLDC + IMP-NGをベースとしており、最小わずか130 KB RAM/350 KB...

Event

Java Embedded @ JavaOne

2012年9月30日〜10月4日にサンフランシスコで開催される「JavaOne」では開発者向けのセッションなどを通して、組み込みデバイス向けのJavaプログラミングや詳細な最新技術を学ぶことができます。今年はJavaOneの後半10月3日〜4日に、役員クラスや意思決定責任者の方を対象としたサブ・カンファレンス「Java Embedded @ JavaOne」も同時開催されます。 JavaOneのセッションとは別に、Java Embedded @ JavaOneのセッションが用意されています。日本からは、東光電気様のセッションにおいて、Java SE Embeddedを搭載したスマートグリッド汎用ゲートウェイ装置へのJavaプラットフォーム導入の利点、事例などをご紹介頂きます。 ぜひ参加登録して下さい。Java Embedded @ JavaOneの参加費用は9月7日まで$595、9月28日まで$795、それ以降は$995です。お早めにお申し込み下さい。すでに「JavaOne」に参加申し込みされている方はプラス$100で参加できます。

2012年9月30日〜10月4日にサンフランシスコで開催される「JavaOne」では開発者向けのセッションなどを通して、組み込みデバイス向けのJavaプログラミングや詳細な最新技術を学ぶことができます。今年はJavaOneの後半10月3日〜4日に、役員クラスや意思決定責任者の方を対象としたサブ・カンファレンス「Java Embedded @ JavaOne」も同時開催されます。 JavaOneのセッシ...

JavaFX

JavaFX 2.2の新機能

原文: https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx 今週、OracleはJavaFXの重要なアップデートであるJavaFX 2.2をリリースしました: 2.2ではついにWindows (32-bitおよび64-bit)、Mac OS X (64-bit)、Linux (32-bitおよび64-bit)のすべてでJavaFXが利用可能になりました。これで大半の開発者はお気に入りの開発環境でJavaFXアプリケーションを作ったりテストしたりすることができます。より詳しくはJavaFX認定システムコンフィギュレーションをご覧ください。 JavaFX 2.2のランタイムはOracleのJava SE 7u6実装に含まれるようになりました。2011年12月以降、この2つの製品はある程度統合が進められてきましたが、今回1つに統合されたインストーラが導入され、JDKとJREの両方でJava SEライブラリと一緒にJavaFXライブラリもインストールされます。これにより使い勝手がさらに改善され、アプリケーション開発者にとっては、JavaFXアプリケーションを実行できるコンピュータの数がJava SEとすぐに同程度になることが確信できるでしょう。 Java SE 6ユーザのためにJavaFX 2のスタンドアローン実装も依然利用可能ですが、これはWindows版のみになります。またこのスタンドアローン版は、Java SE 6がEnd of Life (EOL)になる2013年2月以後はサポートされません。以前にもご説明したように、EOL以降は商用のJava SEサポートにサインアップしない限りJava SE 6ユーザにはバグフィックスやセキュリティフィックスは提供されません。その場合はただちにJava SE 7への移行を計画してください。 上記の重要な変更点に加え、JavaFX 2.2ではいくつかの新機能も導入されました: JavaFXアプリケーションは自己完結型アプリケーションパッケージとして再配布できるようになりました。このプラットフォーム固有のパッケージには、アプリケーションの全リソースとJavaおよびJavaFXランタイムが含まれます。そしてネイティブインストーラパッケージとして配布されることで、各OSのネイティブアプリケーションと同じインストール/起動体験を提供します。大きなメリットは、既存の古いJava SE実装のデプロイに一切影響を与えることなく、Java SE 7をバンドルしたJavaFX 2.2アプリケーションをデプロイできることです。 タッチ操作可能な機器のためのマルチタッチサポート。これは現段階では主にデスクトップクラスのタッチスクリーンやタッチパッド向けですが、将来的にはARMベースのチップ上にJava SE Embeddedが搭載されているさまざまな組み込み機器に洗練されたUIを導入することを可能にします。例えばキオスク端末、テレメトリシステム、ヘルスケア機器、多機能プリンタ、監視システムなどです。これらは、多くのアプリケーション開発者にはまだあまり注目されていないJavaアプリケーションの市場セグメントですが、近年活況を呈しつつあります。 JavaFX Canvas APIは、HTML5のCanvas風の操作を提供する2D描画キャンバスです。HTML5に慣れた開発者は間違いなくこのJavaFX Canvas APIを気に入るでしょう。しかし、これはHTML5のCanvas APIの複製ではないことには注意してください。このAPIは、AWTやSVGのような背景を持つ開発者にも歓迎されるでしょう。Ensembleサンプルアプリケーションの"NEW!"セクションでは、"Fireworks"というCanvasのデモを実行することができます。また、こちらのビデオで別のCanvasの使用例の開発の様子を見ることもできます。 JavaFX 2.2では、JavaFXのイメージオブジェクトへのピクセルの読み出しや書き込みの機能が導入されました。Ensembleの"NEW!"セクションの中に"Image Operator"というサンプルがあります。 ColorPickerとPaginationという2つの新しいUIコントロールが追加されました。これらもEnsembleの"NEW!"セクションで試すことができます。また、WebViewコントロールは閲覧履歴を管理することができるようになりました。FXMLの拡張を利用したカスタムコントロールの作り方も文書化しました。 HTTPライブストリーミングのサポートはJavaFXのメディアサポートを強化する機能です。ダウンロード可能なプレイリストファイルでの指定とネットワークの状態に応じて、メディアプレーヤが動画/音声を代替ストリームに切り替えることができるようになりました。 SwingアプリケーションをJavaFXで実装し直すSwing開発者や、SWTアプリケーションにJavaFXコンテンツを統合するSWT開発者の役に立つ追加情報も用意されています。また、JavaFXアプリケーション開発のベストプラクティスもいくつか文書化しました。 最後に重要な点として、JavaFXの開発者は、アプリケーションのUIを視覚的にレイアウトし、アプリケーションのロジックとUIをきれいに分離するFXMLを生成できる、新しいJavaFX Scene Builder 1.0を活用できるようになりました。このScene BuilderはJavaFXで書かれた本格的なアプリケーションのすばらしい実例でもあります。現在、Windows版とMax OS X版が用意されており、NetBeans 7.2以降とシームレスに連携できます(その他のJava IDEと一緒に使うことも可能です)。 要約すると、JavaFX 2.2は単なるLinuxサポートの追加だけにとどまらない大きなリリースと言えます。JavaFXをJava SEに緊密に統合していくというOracleのビジョンを実現するとともに、クロスプラットフォームサポートへの取り組みと、計画通りの進捗を証明するものなのです。

原文: https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx 今週、OracleはJavaFXの重要なアップデートであるJavaFX 2.2をリリースしました: 2.2ではついにWindows (32-bitおよび64-bit)、Mac OS X...

Java SE

Oracle、Linux ARM用JDKおよびMac OS X用JREをリリース

原文: https://blogs.oracle.com/henrik/entry/oracle_releases_jdk_for_linux 本日、JDK 7 Update 6の公開をアナウンスしました。このリリースにはMac OS X版のアップデートや、Linux ARM向けの新しい移植版の追加が含まれています。 Java 7のMac OS Xへの移植は長い時間をかけて進められてきました。2010年11月からAppleとともにOpenJDKでの作業を始め、ここまでにJDK/JRE側とOS X側の両方で本当に多くの作業が必要でした。舞台裏では、ビルドやテストのインフラを拡張したり、JavaとOSのリリースサイクルの分離方法を見つけ出すといった、一見些細ですが時間のかかるタスクのために多くの作業が行われてきたのです。ともかく、この7u6リリースでのデスクトップJREの追加によって、ついに全機能セットが完成しました。java.oracle.comからダウンロードが可能になっており、一週間くらいでjava.comからも入手可能になるでしょう。 JDK 7u6では、汎用向けのLinux ARM版JDK(デスクトップJREではありません)も追加され、他のプラットフォーム用のOracle Javaと同じライセンス条件で利用可能になりました。このJDKリリースは、新興のARMサーバ市場や、BeagleBoard、PandaBoard、Raspberry Piといった開発用ボードコミュニティを狙っています。この移植版では、ARMv6およびv7用の32ビットバイナリが提供され、これはSwing/AWTやクライアント(C1)およびサーバ(C2)の両コンパイラをフルサポートし、多くのLinuxディストリビューションで実行可能です。一つ注意すべき点は、現在のバイナリはsoftfloat ABIだけなので、例えばRaspbianディストリビューションのようなhardfloat ABIを使うものでは動作しないことです。今後のJDKリリースでは、hardfloatサポートの追加、そしてARM版JavaFXのサポートも予定しています。 ARM版については多くの質問があると思いますので、簡単なFAQを用意しました: Java SE EmbeddedとARM版JDKとの関係は?Java SE Embeddedは、フットプリントの小さなデバイス向けに最適化されたJava SE準拠の実行環境です。ARM v5/6/7やx86、PPCなど複数のアーキテクチャ用のものが用意されています。組み込み利用向けにOracleが商用ライセンスしている製品です。JDKは、開発者やサーバーサイドアプリケーション向けの汎用Java実行/開発環境です。x86やSPARC(そして今回からARMも)といったアーキテクチャ向けのものが利用できます。汎用の利用は無償ですが、Java SEサポートプログラムという商用サポートも用意されています。 ARM版JDKは無料ですか?それとも商用ライセンスが必要ですか?すべての汎用向けJDKやJREバイナリと同様、開発目的での利用や、汎用ハードウェア上での業務利用は無料です。また、汎用コンピュータをターゲットとするアプリケーションには無償でバンドルして再配布することもできます。正確なライセンス条件についてはエンドユーザライセンスをご覧ください。いくつか例を挙げると、データセンターに設置してTomcatやGlassfishを走らせるARMサーバは汎用といえます。また、Rasberry PiボードをPCのように使う場合も同様です。工業用コントローラやキオスク機器は汎用ではないため、どちらも商用ライセンスが必要です。 Oracle JDKのARM移植版はOpenJDKでも利用可能ですか?いいえ、現時点ではこれをオープンソース化する予定はありません。 私はRaspberry Pi/BeagleBoard/PandaBoardを持っています。これらの上でJavaを走らせる方法は?まず、softfloat ABIを使ったLinuxディストリビューションを使っていることを確認してください。後はOracle JDKをダウンロードしてインストールするだけです。 なぜOracleはARM移植に投資し、そしてそれを無料で配布するのですか?ARM上でのJava開発の推進はJavaの繁栄に寄与するでしょう。また、いつかARMサーバ上で何かミドルウェアを売れるかもしれませんね。 グラフィックスはサポートされますか?サウンドはどうでしょう?はい、このJDKバイナリはheadful版ですからSwing/AWTとサウンドの両方をサポートしています。ちなみに、headless版Java SE Embeddedのバイナリではサウンドは利用できませんが、これはweb上で見られるいくつかのサウンド問題の報告が主な原因です。Swing/AWTにはX11R6が必要で、フレームバッファはサポートされていません。JavaFXはLinux ARM上ではまだ利用できませんが、ロードマップ上にはあります。 Linux ARM版JDKは、他のプラットフォーム上のJDKと機能面で完全に同等ですか?JDKの機能の大部分はサポートされていますが、いくつか利用できないものもあります。例えば、G1 GC、階層型コンパイル、プラグインやwebstartなどの機能はありません。詳しくはリリースノートを参照してください。これらのうちいくつかは将来のリリースで追加されます。 softfloat、hardfloatとは何のことですか?Oracle JDKはいつhardfloatをサポートしますか?ARMチップには浮動小数点演算をハードウェアでサポートするもの(hardfloat)とソフトウェアで行うもの(softfloat)があります。ハードウェアによる浮動小数点演算をサポートするARMチップ上で実行されるOSは、関数呼び出しのパラメータの受け渡しに浮動小数点レジスタを使うことができるため性能が向上します。パラメータの受け渡し方法はOS、ライブラリ、そして(JVMのような)アプリケーションの間の契約であり、ABI(Application Binary Interface)と呼ばれます。単純なケースでは、softfloat ABIのOSは、すべてのライブラリやアプリケーションがsoftfloat対応にコンパイルされることを要求し、hardfloatのOSは、ライブラリやアプリケーションがhardfloat対応にコンパイルされることを要求します。hardfloat OSが、softfloatアプリケーションを実行できる互換レイヤを提供できる特別なケースもあります。最近まで大半のLinuxディストリビューションはsoftfloatでした。このところ、Linuxディストリビューションの多くは積極的にhardfloatに移行しており、そのうちいくつかは(Ubuntu 12.04が良い例です)softfloat互換性も提供しています。一方でRaspbianなどはhardfloat専用です。ARM版Oracle JDKの最初のリリースはsoftfloat ABIを使っているので、softfloatのディストリビューションか、softfloat互換性を持つhardfloat上で動作し、hardfloatのみでは動作しません。これは単にタイミングの問題で、将来的にはhardfloat版のJDKが提供されます。おそらく段階的に、例えばまずARMv7、その後にARMv6といった形で提供され、初期リリースはheadless、すなわちSwing/AWTなしになるかもしれません。できるだけ早く早期アクセスビルドを用意し、java.net上で公開する予定です。まだ公表できるような具体的な日程はありませんが、JavaOne 2012ではロードマップをお知らせできることを望んでいます。 今回、一般向けのARM版ができたわけですが、他のOS、例えばiOS版をサポートする予定は?Linuxはシンプルな移植でしたが、iOSはそうではありません。すでにいくつかの試作は行いましたが、現時点ではまだロードマップ上にあるとはいえないでしょう。論点の1つはUIをどうするか、ということです。JavaFXも選択肢の1つですし、ADFモバイルで使われているようなJava+Webの組み合わせもあります。これは、どのソリューションがその投資に見合うだけ幅広く受け入れられるだろうか、という問題です。もし今すぐに欲しいのなら、OpenJDKに直行してハックし始めてください! :-) Oracleの顧客ではない場合、ARM版JDKの問題点はどこに報告すべきでしょうか?OTNのJava developer forumを使ってください。Jazelleのハードウェアバイトコード実行はサポートされていますか?いいえ。優れたJITがあるときはJazelleは不要です。そのためにメモリやCPUパワーを買うことができます。

原文: https://blogs.oracle.com/henrik/entry/oracle_releases_jdk_for_linux 本日、JDK 7 Update 6の公開をアナウンスしました。このリリースにはMac OS X版のアップデートや、Linux ARM向けの新しい移植版の追加が含まれています。 Java 7のMac...

General

Java Magazine日本版第5号公開

Java Magazine日本版第5号が公開されました。英語版Java Magazineの抜粋翻訳ですが、今回はほとんどのコンテンツが日本語に翻訳されています。 第5号の記事タイトルは次の通りです。Java Embeddedの情報もあります。 デバイス・コンバージェンス 飛躍するゲーム業界 ゲームの終わり NetBeansを使用したWicket 1.4でのWebアプリケーション構築 OPENJDK:インタビュー Java SE 7: 非矩形ウィンドウと半透明ウィンドウのさらなる応用 JDK 7におけるJava DBの新機能 OpenJDKを使用した、Javaにおける共変性の調査 Java HotSpot VMにおけるJITコンパイルの概要 JAVAFX2.0 におけるプロパティとバインディングの活用 位置情報を写真にタギングする方法 Java EE 6における「設定より規約」 JavaFXコードの問題に挑戦 目次から各記事を読むこともできますし、全章をまとめてダウンロードすることもできます。

Java Magazine日本版第5号が公開されました。英語版Java Magazineの抜粋翻訳ですが、今回はほとんどのコンテンツが日本語に翻訳されています。 第5号の記事タイトルは次の通りです。Java Embeddedの情報もあります。 デバイス・コンバージェンス 飛躍するゲーム業界 ゲームの終わり NetBeansを使用したWicket 1.4でのWebアプリケーション構築 OPENJDK:インタビュー...

Java ME

Oracle Java ME Embedded Client 1.1リリース

6月26日、組み込み機器向けのJava ME実行環境である、Oracle Java ME Embedded Client (OJEC) 1.1がリリースされました。CDC 1.1.2とFoundation Profile (FP) 1.1.2が事前構成されており、ARM, MIPS, x86のLinuxデバイスで動作します。Security Optional Package, RMI, JDBC, XML API, Web Servicesなどのオプションも付属し、メモリサイズの要件に合わせて利用・削除することもできます。 2011年5月に公開された1.0と比べて、このリリースでは、XML APIの追加、数多くのバグ修正、パフォーマンスの向上がなされました。また、ターゲットに新たにx86アーキテクチャが追加され、x86アーキテクチャのJust-in-Time (JIT)コンパイルをサポートします。 ターゲットプラットフォームは下表の通りです(いずれもGUIなし)。アプリケーションの開発にはLinux (x86)とJDK 6が必要です。詳細はドキュメントをご覧下さい。 CPU OS ROM RAM ARM (v5) Linux 2.6.31以上, glibc 2.10.2以上 5MB以上 8MB以上 ARM (v6, v7) Linux 2.6.35以上, glibc 2.12.1以上 5MB以上 8MB以上 MIPS (MIPS32 74K) Linux 2.6.22以上, glibc 2.8以上 5MB以上 8MB以上 x86 (Pentium III以上) Linux 2.6.35以上, glibc 2.12.1以上 5MB以上  8MB以上 OJEC 1.1は、無償でダウンロードでき、OTN開発者ライセンスにより無償で使用できます。商用利用の際はお問い合わせ窓口よりJava Embeddedチームへご連絡下さい。 OJEC 1.1 ダウンロード OJEC 1.1 ドキュメント

6月26日、組み込み機器向けのJava ME実行環境である、Oracle Java ME Embedded Client (OJEC) 1.1がリリースされました。CDC 1.1.2とFoundation Profile (FP) 1.1.2が事前構成されており、ARM, MIPS, x86のLinuxデバイスで動作します。Security Optional Package, RMI, JDBC,...

Java SE

Mac OS X用のOracle JDKとJavaFX SDKを正式リリース

原文: https://blogs.oracle.com/henrik/entry/oracle_jdk_and_javafx_sdk Oracle JDK 7およびJava FX 2.1 SDKのMac OS X版が公開されました。このリリースは、Oracle JavaのMacへの展開における重要なマイルストーンです。今後、Oracle JDK 7とJavaFX 2.1(そして後続バージョン)のすべてのリリースで、Linux、WindowsやSolaris版と同時にMac版も公開されます。 OS X用のJDKとJavaFXはどこからダウンロードできますか? java.oracle.comからどうぞ。このJDKダウンロードにはJava FX SDKも含まれています。 このリリースには何が含まれていますか? Java SE 7の完全互換実装、JDKの開発ツールの大部分と完全なJavaFX 2.1 SDKです。保守やデバッグ用のツールや、JavaプラグインやWeb Startといったデプロイメント技術の一部は未提供ですが、後続のリリースで追加される予定です。詳細については、JDKのリリースノートやJavaFXのリリースノートをご覧ください。 OracleはMac上のJDK 7でのNetBeansの使用をサポートしますか? はい!NetBeans 7.1.2がJDK Update 4と同時にリリースされ、これにはMac用Oracle JDKのフルサポートが含まれています。こちらの発表をご覧ください。ダウンロードはこちら。 このリリースに既知の問題点はありますか? Mac OS Xへの対応は私たちにとってかなりの大仕事でした。また、新プラットフォームの追加はずいぶん久しぶりのことです。今回のリリースは"1.0"と考えられるべきで、既知の問題点も多く含まれています。詳しくはリリースノート(JDK, JavaFX)を参照してください。 問題点を見つけた場合、どうすればよいですか? まず、それが既知の問題でないかリリースノートを確認してください。次に、適切なメーリングリストやwebフォーラムで検証や解決への助力を求めることができます。その後でバグ管理システムにレポートを登録してください。 OS X版のソースコードは公開されていますか? はい!JDKのすべてのコードは、OpenJDKコミュニティのJDK 7 Updatesプロジェクト内にあります。JavaFXは、OpenJFXプロジェクトで部分的にオープンソース化されており、Oracleは残りの部分についてもオープンソース化に向けて作業中です。 どのAppleハードウェア、OS Xのバージョンがサポートされますか? OracleのJDKとJavaFXリリースは、64ビット対応のIntelベースMac上のOS X Lionをサポートしています。この実装は64ビットのみなので、64ビットのOSが必須なことに特に気をつけてください。 OS Xの古いバージョンでもOracle JDKを使えますか? いいえ、難しそうです。根本的な問題は、Oracle JDKが、AppleがLionで導入したいくつかのAPIを必要としていることです。この新しいAPIで導入された機能は、古いOS Xバージョンにもある程度は存在しましたが、正式なAPIではありませんでした。 32ビットJVMや、古いPPCベースのMacのサポートが必要な場合、どうすればよいでしょう? OpenJDKをベースとして、他のコンフィグレーション向けにJDK 7をビルドする、コミュニティベースの取り組みが存在します。お好みの検索エンジンで簡単に見つかるでしょう。こういった取り組みには拍手喝采です! :-) Mac OS X用Oracle JDKおよびJavaFXのための商用サポートはありますか? これらはOracleの標準リリースと認められるので、Java SE Supportプログラムの対象となります。ただし、Macのサポートは開発のみです。ビジネスクリティカルなサーバーサイドアプリケーションがMac上で運用されることは想定していません。 今後のロードマップについて教えてください Mac版のOracle JDKとJavaFXの今後のリリースは、毎年4-6リリースという通常のJDKリリース計画に従います。次の重要なマイルストーンはJDK 7 Update 6で、ここでJavaプラグインやWeb Startのサポートを追加する予定です。早期アクセスビルドはこちらです。もちろん、JDK 8でもMac OS Xはサポートされます。

原文: https://blogs.oracle.com/henrik/entry/oracle_jdk_and_javafx_sdk Oracle JDK 7およびJava FX 2.1 SDKのMac OS X版が公開されました。このリリースは、Oracle JavaのMacへの展開における重要なマイルストーンです。今後、Oracle JDK...

Java SE

5つのJavaアップデートリリース

原文: Five Java Update Releases (The Java Source) 本日、OracleのJavaチームは、Java SE、Java FX、Java SE for Embeddedのアップデートリリースを公開しました。 Java SE Java SE 7 Update 4  これはOracleが初めてMac OS X用に提供するJDKおよびJavaFX SDKです。(JavaFX SDKを含む)このJDKは、Oracle Technology Networkのダウンロードページから入手できます。 Oracleは、JRockitとHotSpot JVMそれぞれのベストな機能を活かすため統合を進めてきました。新しいJVM(Java HotSpot Virtual Machine, version 23)は、JRockit JVMの機能を統合しています。JRockit JVMの持つ付加価値機能のいくつかがHotpSpot JVMに再実装されています。 Java SE 7 Update 4では、次世代のガベージコレクションアルゴリズムであるGarbage First(G1)が正式サポートされます。 Java SE 7 Update 4は、Java.comでデフォルトバージョンとして提供されるJava 7 JREの、最初のエンドユーザ向けリリースです。最新の情報についてはHenrik Stahlのブログもご覧ください。 詳細についてはJava SE 7 Update 4のリリースノートを参照してください。 ダウンロードはこちら。 Java SE 6 Update 32 Java SE 6u32は、Olsonタイムゾーンデータのバージョン2011lと、いくつかのバグ修正を含んだものです。より詳しい情報はJava SE 6 Update 32のリリースノートをご覧ください。ダウンロードはこちら。 Java FX JavaFX 2.1リリースは、WindowsとMac OS Xプラットフォーム用のJavaFX Software Development Kit (SDK)を含んでいます。JavaFX SDKは、JavaFXアプリケーションの開発に必要なツールやテクノロジを提供します。以下の新機能が含まれています: H.264/AVCビデオとAdvanced Audio Coding (AAC)オーディオを格納した、MPEG-4マルチメディアコンテナ形式のデジタルメディアの再生サポート。 WebVeiwで、JavaScriptからのJavaメソッド呼び出しを新たにサポート。HTML/JavaScriptを表示したとき、特定の処理をJavaに委ねるため(WebView内の)JavaScriptからJava APIを呼び出しが可能に。 JavaFX 2.1リリースでは、WindowsスタイルのLCD用サブピクセルレンダリング機能が追加されています。Windows上ではデフォルトでJavaFXのすべてのUIコントロールでLCD用テキストがオンになっており、WebView(Webコンテンツレンダリング用のWebkitベースのノード)でも同様です。新しいAPIを使えば、シーングラフの低レベルテキストノードでも任意にLCD用テキストを使うことができます。 JavaFX 2.1で追加されたユーザインタフェース: コンボボックス、スタックされたチャート、アプリケーション全体用のメニューバー JavaFX Scene Builder 1.0 Early Access - JavaFXプラットフォーム用のビジュアルレイアウトツール。JavaFX Scene Builderでは、シンプルにオブジェクトをドラッグして配置することでUI画面を設計できます。 より詳しい情報については、JavaFX 2.1のリリースノートをご覧ください。 ダウンロードはこちら。 Java SE for Embedded Java SE for Embedded 7 Update 4 & Java SE for Embedded 6 Update 32 組み込みデバイス向けのJava Standard Edition (Java SE)です。ネットワークベースのデバイスには理想的な、セキュアで最適化された実行環境です。両リリースともいくつかのバグ修正を含んだものです。 ダウンロードはこちら。

原文: Five Java Update Releases (The Java Source) 本日、OracleのJavaチームは、Java SE、Java FX、Java SE for Embeddedのアップデートリリースを公開しました。 Java SE Java SE 7 Update 4  これはOracleが初めてMac OS X用に提供するJDKおよびJavaFX...

Event

スマートグリッド向け組込機器セミナー

スマートグリッド向け組込機器のセミナーが開催されます。 このセミナーでは、組込機器からの視点にフォーカスして、組込機器のタイプ毎のマーケットサイズの成長速度、展望、アプローチを、独自調査に基づき、解説します。JavaOne Tokyoから技術ハイライトの報告、組込機器業界のキープレイヤーのイーソル様より事例の紹介、スマートメーター分野で最先端を走り続ける東光電気様より事例とマーケット展望を紹介いたします。 「スマートグリッド向け組込機器の市場分析と事例紹介」参加費:無料対象:家電製造業、電力系事業者、通信事業者、メーター製造者、組込機器メーカ、組込機器インテグレータ、ハウスメーカー日時:2012年5月9日(水)13:00 ~17:00 (受付開始 12:30~) 会場:日本オラクル株式会社 本社13Fセミナールーム 詳細および登録は下記よりお願い致します。 http://www.oracle.com/goto/jpm120509

スマートグリッド向け組込機器のセミナーが開催されます。 このセミナーでは、組込機器からの視点にフォーカスして、組込機器のタイプ毎のマーケットサイズの成長速度、展望、アプローチを、独自調査に基づき、解説します。JavaOne Tokyoから技術ハイライトの報告、組込機器業界のキープレイヤーのイーソル様より事例の紹介、スマートメーター分野で最先端を走り続ける東光電気様より事例とマーケット展望を紹介いたしま...

Event

Java Developer Workshop #2 セッション録画

12/1に開催したJava Developer Workshop #2の全セッションの録画を公開しました。 http://www.ustream.tv/channel/oracle-java-developer-workshop/videos プレゼン資料はこちらからダウンロード可能です。 基調講演: JavaFX 2.0 - Next generation Java client solution Nandini Ramani / Oracle Corporation &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: transparent; border-right-color: transparent; border-bottom-color: transparent; border-left-color: transparent; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; Java SE/EEアップデート 寺田 佳央 / 日本オラクル Java Embeddedアップデート 佐藤 芳樹 / 日本オラクル &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: transparent; border-right-color: transparent; border-bottom-color: transparent; border-left-color: transparent; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; 新世代オブジェクト指向言語Scalaの魅力 水島 宏太 氏 / Scalaコミュニティ 現実世界のJRuby 中村 浩士 氏 / 日本JRubyユーザ会 &amp;amp;amp;amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;amp;gt; Java x Groovyで開発効率を高めよう 上原 潤二 氏 / 日本Grails/Groovyユーザグループ &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-top-color: transparent; border-right-color: transparent; border-bottom-color: transparent; border-left-color: transparent; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;

12/1に開催したJava Developer Workshop #2の全セッションの録画を公開しました。 http://www.ustream.tv/channel/oracle-java-developer-workshop/videos プレゼン資料はこちらからダウンロード可能です。 基調講演: JavaFX 2.0 - Next generation Java client solution Na...

General

Java Magazine第二弾11/12月号発行

Java Magazine の第二弾11/12月号が発行されました!まずは無料の購読登録をして電子版をご覧ください♪以前のエントリーでも紹介した第一弾は程なく翻訳されており、PDF版のみですがダウンロードして誰でも登録せずに閲覧できてしまいます! 本号の内容は JavaOne 2011のハイライト Duke's Choice Awardの一つに選ばれたdooAppの、グリーンビル管理専門家のためのJavaFXベースビル管理ツール オーストリアのE-Healthシステム (Javaベースの健康データ管理機器) また、技術的な記事も豊富に掲載されています。 教育用のJava環境Greenfoot上でゲーム開発の最初の一歩 Hudsonプラグイン開発 JavaFXとSwingの統合方法 JavaFXでのサンプルアニメーション各種 Java EE 6でのストレステスト方法 Mobile Sensor API (JSR-256)を用いたLocation-awareなゲーム開発 そして最後に、Polyglot Programmingをテーマとした読み物や、OracleのJVM Spec LeaderへのJVM Summitでのインタビュー記事(NashornやProject Lambda)など面白い内容がたくさん詰まっています。巻末のJavaエバンジェリストのArun GuptaからのJava EEクイズにもチャレンジしてね☆

Java Magazine の第二弾11/12月号が発行されました!まずは無料の購読登録をして電子版をご覧ください♪ 以前のエントリーでも紹介した第一弾は程なく翻訳されており、PDF版のみですがダウンロードして誰でも登録せずに閲覧できてしまいます! 本号の内容は JavaOne 2011のハイライト Duke's Choice Awardの一つに選ばれたdooAppの、グリーンビル管理専門家のためのJa...

Event

Java Developer Workshop #2 開催!(12/1)

 12/1にオラクル青山センターにて、Java技術の最新情報や応用事例を紹介する開発者向けワークショップ(第2回:第1回の様子はこちら)を開催します!今回は、前半にオラクルからJavaFX/SE/EE/ME各プラットフォームの最新情報をお届けし、後半は"Polyglot Programming on Java VM"をテーマに、Scala、JRuby、GroovyといったJava VM上で動作するさまざまな言語の特徴や使いどころについて、各言語コミュニティのキーパーソンからご紹介いただきます。 基調講演では、Client Java GroupのVice Presidentで現在JavaFX開発の総責任者を務めるNandini Ramaniから、ついに正式リリースされたJavaFX 2.0の概要や特徴、今後のロードマップなどをお話しします。NandiniはJavaOneキーノートでのデモに毎年登場することでも有名で、今年のJavaOneではiPadやWindows、LinuxタブレットなどでのJavaFXのクロスプラットフォームデモが話題になりました。 基調講演に続いて、日本オラクルの寺田、佐藤より、今年のJavaOneでのアップデートを中心としたJava EE/SE/ME各プラットフォームの最新情報をお届けします。いよいよその姿が見えて来たSE 8、クラウド対応を進めるEE、そしてSEやFXとの融合が進むMEと、いずれもその進歩に目が離せません。 後半はJava VM言語祭り!まずはScalaコミュニティから「Scala実践プログラミング」の著者としても知られる水島さんにScalaの魅力を紹介していただきます。続いて日本JRubyユーザ会からは、JRuby/CRubyのコミッタとしても有名な中村さんから、JRubyの実用的な活用方法などをお話いただきます。最後にGroovyコミュニティから「プログラミングGROOVY」なども書かれている上原さんにGroovyの概要やJavaとの連携などについてご紹介いただきます。 多様な言語のサポートはJava SE 7やJavaFX 2.0の重要なテーマの一つでもあります。Java VM上で動く主要言語を一度に学べるこの機会をぜひご活用ください! このイベントは、コチラからご登録いただければどなたでも参加費無料で参加できます。席数には限りがありますのでご興味のある方はぜひお早めに!また、当日ご来場いただけない方のためには下記でustreamでの中継も予定しています http://www.ustream.tv/channel/oracle-java-developer-workshop

 12/1にオラクル青山センターにて、Java技術の最新情報や応用事例を紹介する開発者向けワークショップ(第2回:第1回の様子はこちら)を開催します!今回は、前半にオラクルからJavaFX/SE/EE/ME各プラットフォームの最新情報をお届けし、後半は"Polyglot Programming on Java VM"をテーマに、Scala、JRuby、GroovyといったJava VM上で動作するさ...

Event

JavaOne 2011 Strategy Keynote ハイライト

JavaOne2011 Strategy Keynote 2日目は、初日と同様JavaOneの顔であるAdam MessingerのMCで進行していきました。まずはAdamの上司Senior Vice PresidentのHasan Rizviが大きなStrategyとして、実績に裏打ちされた技術(Proven Technology)、コミュニティの協力(Community Driven)、オラクルのリーダーシップ(Oracle Leadership)、でJavaの進化を加速していくことを約束しました。また、ビジネスアプリケーションを数多く提供するオラクルらしく(?)、3つのStrategyそれぞれのスコアカード的なレビューが始まります。Technologyについては、JDK 7やJavaFX 2.0、Java SE for Embedded 7、OJEC1.0、OJWC3.0を予定い通りリリースできたとチェックが付き、更には今回JDK 7 for Mac OS X Developer Previewをリリースできた事を誇りました。CommunityではOpenJDK、JCP、JUGの活動を振り返り、LeadershipではJavaOne(Brazil, China, Russia, India)やJava Magazineへの継続したJava投資、活発なコミュニティ活動、それらの実績評価としてJDKダウンロード数、Java搭載TVや携帯電話数を紹介しました。 その後、Technical Keynoteでも触れられた、JDK 8やJDK 9、NetBeansに関しても再びAdamから簡単な紹介があり、TwitterのDirectorのRob Bensonを招き入れました。過日、Twitterが検索エンジンをRuby on RailsからJavaベースへ変更し、大幅な性能とスケーラビリティの向上を達成した事はOSCONでも大きく発表され知る人ぞ知るところですが、この日はTwitterが正式にOpenJDKへメンバーとして参加する事がアナウンスされました。 JavaFX Run Anywhereのフレーズが映し出されたスクリーン、JavaFXパートで登壇を促されたJava Client PlatformのVice PresidentのNandini Ramaniは説明もほどほどに、新しいJavaFXの可能性を披露しました。まずWindows 7タブレットでノロノロ動くJavaFXパズルゲーム、次に取り出したのはLinuxベースのタブレット。あくまでLinuxとの言及しかありませんでしたが、同じJavaFXパズルゲームが今度はサクサク動作します。iPadに次ぐ人気タブレットによく似てます。そして、最後に取り出したのはiPad 2。なんとiPad2でも同じパズルゲームを動かして見せました! あくまで実験的なプロジェクトとして数年前から進められてきたもので、コミュニティの反応を知るために披露されたものですが、JavaFXが今本当に求められている主要なモバイルデバイスの間でクロスプラットフォーム、即ちどこでも同じアプリケーションが動くRunAnywhereを実現して見せたのでした。 この興奮も冷めやらぬ中、JavaFXパートは、JavaFXをオープンソース化してコミュニティで標準化していくというアナウンスで締めくくられます。 Mobile & Embedded 続いては、最近Java MEよりJava Mobile & Embeddedとカテゴライズする事の多い組込みパートです(Java SE EmbeddedとJava ME CDCをEmbeddedとして一括りにするため、このような表現が増えてきました)。Mobileでは、Java ME/CLDCがJava SEに同期する、つまり次のバージョンはJava ME 7/8となる事が発表されています。もちろんメジャーバージョン番号だけでなく、SE 7の言語拡張をMEへ、MEのAPIをSEでも、という同期が予定されるようです。一方の、Embeddedでは、ようやくCDCとJava SEがJava SE 8で統合される事が発表されました。Java SE 8のモジュール化実装に基づき、組込みデバイス向けにサブセットしたCDC Profileが用意されていきます。昨年のJavaOneでは Java ME.next という文字が踊りましたが、前日のTechnology Keynoteでも紹介があったJSR 153, LWUIT 1.5, Java ME SDK 3.0.5, OJWC 3.0やJava-Web連携、Java-SIM連携に加えてJava ME 7 & 8へのロードマップでMobileにおけるME.nextが明らかになってきたと言えます。また、Embeddedでは期待されていたCDC 6を飛び越え、JDK 8でのCDCとSEとのConvergenceがまさにME.nextと言う事ですね。そして、もう一つ注目は、なんとJavaFXをJDK 8 CDC Profileの標準GUIとして採用する方針。昨年のJavaOneでは、JavaFX Mobile、JavaFX TVがJavaFX 2.0で打ち切らる悲報が伝えられましたが、これは組込み開発者にとって非常に嬉しいニュースですね! その後ゲストからは、SE EmbeddedやOJECの強力なパートナーARMのVPであるLance Howarthや、Feature Phone (Java Mobile)向けにもアプリを配布するGetjarのCEOのIIja Laursがスピーチが行われました。ちなみに、Strategy Keynote後のJava ME (こちらはMobile & EmbeddedにCardも含まれてます)に関するプレスリリースでは、Java ME 7(CLDC)を新しいJSRとしてJCP内で広く議論していくとのアナウンスも出されています。 Project Avatar 本日の最後に、Java EEパートに続いてもう一つ重要なアナウンスがありました。Avatarと名付けられた新しいプロジェクトはHTML5とJavaを繋げ、Java ME, SE, EEを統合したDynamic Rich Clientを実現するソリューションを目指します。詳細については、もちろん現段階で明らかにされませんが、ゲームチェンジャーとして台頭するHTML5時代へ向けてオラクルが繰り出すJavaの大きな新コンセプトである事は間違いありません。こうして聴衆に将来Avatarが実現するComplete Solution for Dynamic Rich Clientを想像させながらStrategy Keynoteは幕を閉じました。 12/1 Java Developer Workshop@Oracle Japan JavaFXデモに登壇したNandini氏、JavaFXを紹介するために12/1に来日してくれる事が決まっています!詳細については後日このブログでもアナウンスしますが、日本オラクル青山本社で予定されているJava Developer Workshopの告知をどうぞお楽しみに☆【関連リンク】JavaOne 2011 Strategy KeynoteMoving Java Forward --Java Strategy Keynote 2011 (JavaOne Blog)【関連プレスリリース】Oracle Outlines Plans to Move Java Forward at JavaOne Strategy KeynoteOracle Releases JavaFX 2.0Oracle Continues to Move Java Forward and Details Java SE 8 RoadmapOracle Increases Investment in Java MEOracle Announces Winners of the 2011 Duke’s Choice Awards

JavaOne2011 Strategy Keynote 2日目は、初日と同様JavaOneの顔であるAdam MessingerのMCで進行していきました。まずはAdamの上司Senior Vice PresidentのHasan Rizviが大きなStrategyとして、実績に裏打ちされた技術(Proven Technology)、コミュニティの協力(Community...

Event

JavaOne 2011 Technical Keynote ハイライト

JavaOne2011 サンフランシスコ10/2-5に開催されたJavaOne 2011は、キーノートではStrategy KeynoteよりもTechnical Keynoteを先に、最終日にはCommunity Keynoteをスケジュールと、よりエンジニアに寄った形で行われました。初日の幕は、"Livin the Java Life"ラップという随分とギークなミュージックビデオで開かれました。まずは、Vice PresidentのAdam MessingerからのWelcome Talk。今年のJavaOneの特色、テクノロジーフォーカスで、ユーザコミュニティを巻き込み、実に昨年の倍のスペースと参加者を擁して開催できた事を強調しました。また12月のJavaOne Latin Americaや来年4月のJavaOne Tokyoについての簡単なアナウンスがありました。 Technical Keynote はインテルのVice PresidentのDoug Fisherへと続き、Java Platform GroupのチーフアーキテクトMark ReinholdからのJDK 7の詳細な説明、JDK 8までのロードマップやJDK 9へ向けたアイデアの紹介がなされました(例えば、自己最適化VM,ビッグデータ対応,メタオブジェクト/Reification,末尾最適化,コンティニュエーション,マルチテナント, リソース管理等々)。実は日曜日の関係者向けSpecial Interest Groupでは、なんと2021年のJDK 12までのロードマッププランまでも紹介しています!これもタイムリーに製品アップデートをリリースしていく、オラクルの戦略が良い形で出ている現れでしょうか。 JavaFX 2.0 GA 続いてJavaFXパートに登壇したのは、Client Java PlatformグループのチーフアーキテクトRichard Bair (FX Experience)。RichardからはJavaFXに関するとても多くの重要なアナウンスがありました!JavaOne全体を通してJavaFXのセッション数は1/3程度を占めており、オラクルの注力ぶりがよく感じとれます。   • JavaFX 2.0 General Availability for Windows (正式リリース)  • JavaFX 2.0 Developer Preview for Mac OS X (開発者向けプレビューリリース)  • JavaFX Scene Builder EA (Early Access版リリース)   • NetBeans IDE 7.1 Beta (JavaFX 2.0サポートリリース)  • JavaFX 2.0のオープンソース化 しかしなんと言っても、最もJavaFXパートで盛り上がったのは、 Jasper Pottsが最後に行ったJasper's Labでした。Labは、JavaFX 2.0とJavaFX Labパートから構成され、前半ではJavaFX 2.0で作り上げた美しいオーディオスペクトラムと3Dのルービックキューブ、後半では実験的と断った上で二つの魅力的なアプリケーションが紹介されました。まず一つは、3DのDukeでボタンを押すと手を上げたりバック宙をするようなデモ、もう一つはKinnectでモーションキャプチャを行いJasper氏の動きに合わせて3D Dukeが動くというデモでした!現時点のJava FX 2.0でこのアプリが実現できるわけではありませんが、JDK 8のJavaFX 3.0とデバイスサポートAPIを組み合わせて、このようなアプリが実現できる日も近いかもしれません。 Java Mobile & Embedded さて、だいぶ時間が押して始まったJava MEパートは、スペックリードのHinkmond (Hinkmond Wong's Weblog)が、2011年に達成したJavaCard、Java Mobile、Java Embeddedに関するアップデートを駆け足で紹介してくれました。 JavaCardからはNFCやM2Mへの対応、Java MobileではWeb Integrationや新しいクールなUI、Java Embeddedではエンタープライズとの統合(おそらくBDBやMobile Serverとの連携)や、Java TVでの新しいメディアストリームアプリケーションの紹介がありました。ちなみに、JavaCardはこれまで65億枚の出荷実績を持ち、Java Mobile(携帯電話)は30億台、Java TV(テレビ)は1.25億台の実績のあるテクノロジーです。また、7月のJava SE 7のGAと同時にJava SE 7 for Embeddedをリリースした事も重要なアップデートとして触れられました。2011には他には次のようなアップデートがありました。     • Oracle Java Wireless Client 3.0     • JSR 229 1.1: Payment API     • LWUIT 1.5     • JSR 253: Mobile Telephony API     • Java ME SDK 3.0.5     • JSR 172 1.1: J2ME Web Service API     • Oracle Java Embedded Client 1.x     • Java SE Embedded 7     • Java Card Development Kit 3.0.4     • Oracle Java Wireless Client 3.1     • Oracle Java Services Bridge Beta デモでは、Java MobileのNetwork APIが紹介されました。Network APIはキャリアがネットワーク機能を開発者へ利用可能にするものです。実際に、最近クーポンサービスなどで流行っている位置情報を使ったジオフェンス (仮想的な地理的境界)を利用し、AdamがOakland駅に到着したと同時に携帯電話に、SMSで周辺情報がプッシュされるデモが実演されました。 もう一つはTVのデモで、PS3のJavaアプリケーションからDLNA対応のプリンタやスマートフォンへネットワーク連携するアプリケーションでした。RIOのBlu-rayのポストカード作成アプリケーションを使い、再生しているBlu-rayムービーから好みのシーンをキャプチャして、そこに好きなメッセージや画像を入れて加工し、DLNA経由でポストカードをプリンタへ送り印刷して見せました。また、出力先を変えてスマートフォン (Androidアイコンが!?)に送信して同じ画像を再生して見せてくれました。 時間オーバーしてしまったため、Hinkmondのセッションは10分程度しか無く残念でした。しかし、デモグラウンドには約1/3のブースがJavaCard, Java Mobile, Java Embedded関連で、スマートメータやヘルスケアモニタなど新しいJava搭載デバイスのデモもたくさん紹介されていました。 Strategy Keynote 最後に2日目のStrategy KeynoteではJava SEとJava ME CDCの統合や、その組込み向けCDC Profileの予定、CDCのGUIにJavaFXが予定されているなど、大きなロードマップがアナウンスされています。 また、昨年のJavaOneでよく目にしたME.nextの具体的な方向性や、Nashorn、Avatarなど新しいHTML5対応への動き、そしてとっておきのJavaFXのデモなど、明るい話題が目白押しの2日目は別のエントリーで紹介したいと思います。Oracle Media NetworkではTechnical Keynoteを全編配信しており、プレゼンテーションスライドも公開されています(関連リンク参照)。一つ一つの詳細な内容が知りたい方は是非実際に見てみて下さい! 【関連リンク】JavaOne 2011 Technology Keynote 1/2JavaOne 2011 Technology Keynote 2/2Evolutionary Next-Steps - Technical Keynote JavaOne 2011 (The Java Source)【関連プレスリリース】Oracle Outlines Plans to Move Java Forward at JavaOne Strategy KeynoteOracle Releases JavaFX 2.0Oracle Continues to Move Java Forward and Details Java SE 8 RoadmapOracle Increases Investment in Java MEOracle Announces Winners of the 2011 Duke’s Choice Awards

JavaOne2011サンフランシスコ10/2-5に開催されたJavaOne 2011は、キーノートではStrategy KeynoteよりもTechnical Keynoteを先に、最終日にはCommunity Keynoteをスケジュールと、よりエンジニアに寄った形で行われました。初日の幕は、"Livin the...

Event

JavaOne 2011 Keynoteライブストリーミング

JavaOne2011のキーノートがライブでストリーミングされます!oracle.com/javaoneliveで誰でも見られるので乞うご期待です。気になるキーノートのスケジュールは・・ 10/3(Mon) 8:30-10:30 PT JavaOne Technical Keynote + Intel Keynote      Speakers:Mark Reinhold, Chief Architect, Java Platform                       Richard Bair, Chief Architect, Client Java Platform                       Linda DeMichiel, Member of Java EE Technical Staff                       Hinkmond Wong, Member of Java Embedded Technical StaffJava SEの進化、特にJava仮想マシンをターゲットにしたnon-Java言語、プラットフォームのModularization、JavaFXの進化、Java EEとクラウドや組込み、モバイルJavaについての新しい見方など、が予定されています。また、インテルキーノートでは、これまでのJava向けの最適化技術が紹介される予定です。 10/4(Tue) 8:30-10:30 PT JavaOne Strategy Keynote + Juniper Network Keynote      Speakers: Adam Messinger, Vice President of Development, Oracle Fusion Middleware                       Cameron Purdy, Vice President, Development                       Hasan Rizvi, Senior Vice President, Oracle Fusion Middleware and Java.オラクルの今後のJava戦略についての、Fusion Middleware開発グループのVice Presidentからの講演です。Juniper Networkからは、プログラマブルネットワーキングとネットワークアプリケーション開発についての紹介が予定されています。 10/6(Tue) 8:45-10:30 PT JavaOne Community Keynote + IBM Community Keynote      Speakers: Sharat Chander, Principal Product Director                        JavaOne Program Committee Chairperson                        Java Community MembersJava Communityのキーノートと、IBMからはWebsphere Cloud Computingのチーフアーキテクトからクラウド基盤としてのJavaやスケーラビリティについて紹介が予定されています。

JavaOne2011のキーノートがライブでストリーミングされます!oracle.com/javaoneliveで誰でも見られるので乞うご期待です。 気になるキーノートのスケジュールは・・  10/3(Mon) 8:30-10:30 PT JavaOne Technical Keynote + Intel Keynote      Speakers:Mark Reinhold, Chief...

Java Embedded

組込み向けJava SE 7も同時リリース

7/28のJava SE 7リリースと時を同じくして、Java SE for Embedded 7もリリースされました!Press release: Oracle Announces Availability of Java SE 7 5年ぶりのメジャーアップデートであるJava SE 7自体については、あちこちで語られているので他に譲るとしまして組込み向けリリースでも大きな特徴である、 Java言語仕様の変更(JSR334: Project Coin) 動的言語対応の強化(JSR292: InvokeDynamic) Fork/Joinフレームワーク(JSR166y) New I/O API (NIO.2) が、もちろん対応されています!現時点でのサポートプラットフォームとして、Linux ARMv5, v6, v7とLinux/x86向けのバイナリが提供されています。ただし、フットプリントを半減(30MB程度)にするために、Java SE Embedded 6と同様にいくつかの制限を設けています サーバ向けJIT(C2)非搭載 Garbage First GC (G1)非搭載 ARMv7向けのHeadfulリリースでOpenGL非サポート コードキャッシュの予約サイズ(ReservedCodeCache)は32MB **将来リリースで改善予定 今後は、組込みデバイス向けのSEも、最新のJava SEと同期してリリースされていくので、ARMなどのユーザにとっても使い易くなりますね ;-) ところで、以前のエントリーでも案内したフリーで隔月のオンラインマガジンJava Magazineの初号が発行されました!Java SE 7はもちろん、ブラジルのBlogo TVでの組込みJava採用や、JSF 2.0の中でFlex, JavaFXを使う記事、Java MEでJSR211: CHAPI APIを扱うマニアックな記事、またScalaに特有のオペレータオーバーロードや末尾再帰最適化、Traits、パターンマッチなどのJavaに無い機能をJVMがどのように扱うか、など面白い記事が満載なので必見です☆ 【参考リンク】Java SE for Embedded 7 DownloadJava SE for Embedded 7 READMEJava SE for Embedded 7 Release Notes

7/28のJava SE 7リリースと時を同じくして、Java SE for Embedded 7もリリースされました!Press release: Oracle Announces Availability of Java SE 7 5年ぶりのメジャーアップデートであるJava SE 7自体については、あちこちで語られているので他に譲るとしまして 組込み向けリリースでも大きな特徴である、 Java言...

Java ME

Oracle Java Wireless Client 3.0 がリリース!

6月、待ちに待った Oracle Java Wireless Client 3.0 がリリースされました !! Oracle Java Wireless Client(以下、OJWC)は、オラクルが公式にリリースする Java ME CLDC製品で、全世界で1億台以上の携帯電話に導入されてきました。 Oracle の Java ME CLDC実装は、携帯電話端末などの使用可能なリソースが限定される機器の上で力を発揮できるよう設計され、安定且つセキュアに動作する Javaの実行環境として、世界中で選ばれてきました。OJWCは、その Oracle の CLDC実装 をベースに、デバイスメーカー様が自社の携帯端末を市場への速やかな投入を行えるように Mobile Service Architecture (JSR-248) の実装として最適化されており、スキン・タッチパッド・画面の回転など携帯電話ならではの機能拡張と合わせてパッケージングされている製品です。 軽快な LWUIT を使ったグラフィックインタフェース OJWC 3.0は、China Mobile の Java Specification 4.1など、今後も飛躍的にユーザが増加すると考えられている BRICAのHigh-end携帯電話市場への適合を念頭において設計されており、さらにニーズに合わせて、次のような3つの強力な機能拡張が利用できます。 Oracle Mobile Developer APIs (OMDA)コンテンツプロバイダ様向けに再整備された API Java + SIMOTAでのSIMコンテンツ管理をMIDletから行うための OJWC/Java Cardへの機能拡張 Java + WebWAC2.0ウィジェットをMIDletのように管理するための機能拡張(WAC 2.0対応・Java/JavaScriptブリッジ) さらにJSRのAPI拡張としては、Telephony(JSR-253)・IMS(JSR-281)・Web UI(JSR-290)の3つのAPIが追加されます。 ※ただし6月末時点で JSR-290 は JCPによるリリース承認待ちでは、もう少しだけ詳しくOJWC3.0の特徴をご紹介します。 Oracle Mobile Developer APIs (OMDA)SNS・Network API・クラウド・eコマース・マルチメディアなどでの利用を念頭に、コンテンツプロバイダ様のリクエストを元に策定された API拡張であり、現在のところストリーミングや音声・映像キャプチャの為のAPIやアクセスポイント・位置情報取得などのAPIが順次ポーティング予定となっています。 Java + SIMOTA(over the air)でのSIMコンテンツ管理を行うOracleのソリューションであり、Oracle Java Services Bridge(OJSB)と呼ぶJavaとデバイス機能との連携を行う機能の一つです。OJWCおよびJava Cardへの機能拡張により、MIDletからのセキュアで柔軟性のある SIMコンテンツ操作が可能となります。BYOD (Bring Your Own Device) 対応などへの応用も期待されています。 Java + Web将来的にはHTML5互換となるという WAC2.0ウィジェットの実行環境として、OJWCへの強力なアタッチメントとなります。AMSとの連携により、これらWAC2.0に準拠したWebアプリケーションをMIDletのように管理することが出来ます。また、Java/JavaScriptブリッジ機能により Mobile AJAXとも呼ばれるような Webとビジネスロジックの連携が可能となります。 OJWC3.0の今後のリリース OJWC 3.0は、年内に順次、標準的なOS・アーキテクチャに対して事前セットアップ・ビルド・最適化されたバイナリとして提供されるほか、差別化を図りたいデバイスメーカー様および VAP 様に合わせて、個別に一部または全てのJSR実装ソースへの修正が可能な形で提供されていく予定です。 【参考リンク】 Oracle Java Wireless ClientOracle Java Wireless Client for the Brew Mobile PlatformJava for Mobile Devices DocumentationWholesale Applications Community (WAC)Lightweight UI Toolkit (LWUIT)

6月、待ちに待った Oracle Java Wireless Client 3.0 がリリースされました !! Oracle Java Wireless Client(以下、OJWC)は、オラクルが公式にリリースする Java ME CLDC製品で、全世界で1億台以上の携帯電話に導入されてきました。Oracle の Java...

Java Embedded

Java SE Embedded v.s. Java ME Embedded

Java SE EmbeddedとJava ME Embedded (OJEC: Oracle Java ME Embedded Client)のベンチマークを比較しました。過去のエントリーで、Java SE EmbeddedがJava SE 6互換でフットプリントを半分程度に削減したバイナリリリースであり、一方OJECはJava ME CDC1.1ベースに整理したバイナリリリースであるとポストしてきました。求められるRAM/ROMサイズもJava SE Embeddedは32~64MB/37~46MB以上に対して、OJECは8MB/5MB以上で、それぞれが別々のデバイスをターゲットにしている事も明らかです。 実はパフォーマンスの点では、両者には目立って大きな差は出てきません。Java EGBUチームでも、確認すべくBeagleBoard-xMとGuruPlugを使ってEmbedded CaffeinMark 3.0とGrinderBenchでベンチマークテストを実施してみました。 スペックは以下の通り Java SE Embedded 6u25Oracle Java ME Embedded Client 1.0  【GuruPlug】  CPU: ARMv7 Cortex-A8 1GHz  RAM: 512MB  OS: Debian GNU/Linux sheevaplug-debian    2.6.32-00007-g56678ec   【BeagleBoard-xM】  CPU: ARMv5 1.2GHz  RAM: 512MB  OS: Ubuntu 11.04 GNU/Linux omap 2.6.39-x1 結果は、それぞれ以下の通りになりましたEmbedded CaffeinMark(上グラフ)のStringテストでは、String Cache Optimizationの効果により、OJECの方で非常に高いスコアが計測されています。その一方で、Floatテストについては、ARMv7用のSE EmbeddedのみがHard Float対応のため、BeagleBoard-xMの場合では高いスコアが出ています。全体的な平均スコアを比較するとEmbedded CaffeinMarkでOJECが16~26%程度、GrinderBenchで12~15%程度高いスコアが出ている事が分かります。CDC素晴らしいですね:-)GrinderBench(下グラフ)では、なぜかSE EmbeddedでもOJECでも、GuruPlugの方がBeagleBoard-xMよりも高いスコアが出ています。テストプログラムはコア数よりもクロック数が支配的な実装なのでしょうか・・・。別の機会に、もう少し踏み込んで考察してみようと思います!今回はこれまで。

Java SE EmbeddedとJava ME Embedded (OJEC: Oracle Java ME Embedded Client)のベンチマークを比較しました。 過去のエントリーで、Java SE EmbeddedがJava SE 6互換でフットプリントを半分程度に削減したバイナリリリースであり、一方OJECはJava ME...

JavaFX

JavaFX Script v.s. JavaFX 2.0

先日、JavaFX 2.0 β版がリリースされましたが、オラクルのエンジニアJim CornerがJavaFX ScriptからJavaFX 2.0へマニュアルでプログラムを変換しておもしろい比較をしています。対象プログラムにはJavaFX: Developing Rich Internet Applicationsの中から、JavaFX 1.1 Scriptで作った数独プログラムのUI部分を選んで採用してます。Java FX 2.0への変換は、単純に各fxファイルを対応するjavaファイルへの手動での書き換えを行いました。各プログラム毎の行数や文字数の比較結果は次表になります。 JavaFX Script source fileNumber of LinesNumber of CharacterJavaFX 2.0 Java source fileNumber of LinesNumber of CharactersArrowKey.java672Board.fx2216831Board.java2056508BoardNode.fx44616054BoardNode.java72329356ChooseNumberNode.fx1685267ChooseNumberNode.java30210235CloseButtonNode.fx1153408CloseButton.java992883ParentWithKeyTraversal.java1113276FunctionPtr.java680Globals.java20554Grouping.fx8140HowToPlayNode.fx1213632HowToPlayNode.java1364849IconButtonNode.fx1965748IconButtonNode.java1835865Main.fx983466Main.java642118SliderNode.fx28810349SliderNode.java35013048Space.fx781696Space.java1062095SpaceNode.fx2276703SpaceNode.java2206861TraversalHelper.fx1113095Total2,07779,127253187,800予想通り、JavaFX 2.0の方が行数が長くなり、22%程度増えた結果となっています。一方、文字数に関しては行数ほどの差がありません。つまり、一行あたりの文字数という意味では、JavaFX 2.0は少ないという事が言えます。また、JavaFX Scriptの方は宣言的定義、所謂オブジェクトリテラルがどうしても多くなるため、空白スペースが多くなるという性質も起因しているようです。次にメモリ消費量の比較です。Windows Vista上のタスクマネージャで目視でRAMサイズを計測したところ、JavaFX Scriptは起動直後から90MB、JavaFX 2.0では55MBで推移したとのことです。JavaFX Scriptの場合、ランタイムシステムに加えてスクリプトパーサが必要になるためフットプリントが大きかったのかもしれません。最後に、bindingの数の比較を行っています。驚くことに、JavaFX Scriptでは58個もあったbindが、JavaFX APIでは2個に激減してしまいました。分析によると Java FX Scriptでは、気軽にbindを利用して変数束縛を多用しがちです。しかし、実際のところ本当にbind機能を必要とするケースは一部であり、数独プログラムについてはメソッド呼び出しの順番を整理するだけで十分な部分がほとんどであったようです。JavaFX ScriptからJavaFX 2.0へ変換するMigration Toolの開発も予定されていますが、不要なbindがどれくらいあるかなんて事は、手で変換して初めて分かる面白い検証ですね!

先日、JavaFX 2.0 β版がリリースされましたが、オラクルのエンジニアJim CornerがJavaFX ScriptからJavaFX 2.0へマニュアルでプログラムを変換しておもしろい比較をしています。 対象プログラムにはJavaFX: Developing Rich Internet Applicationsの中から、JavaFX...

Java Embedded

SE Embeddedの30分トレーニングビデオ

Marvel社のプラグコンピュータや、GlobalScale社のSheevaPlugの上にSE EmbeddedをインストールしてTomcatを動かすデモが公開されています。最初のビデオは、6:56まではEmbedded Javaの導入やプラグコンピュータの説明ですそれ以降で、SE Embeddedをダウンロードしたり、ランタイムが30数MB程度だという事を確認したりしてますね。後半のビデオは、NetBeansで開発したGUIアプリケーションを、そのままプラグコンピュータへコピーして動かしたりデバッグ実行してNetBeansのデバッガからリモート接続したり、JConsoleを接続してプロファイル情報を見たり要するに泥臭い組み込み開発じゃなく、デスクトップJava開発と同じように組み込み開発できますよー、というビデオかな。 それにしてもプラグコンピュータって日本じゃ手に入らないんですかね?Javaチームでも今頃注文したんですが、いつになったら届くことやら・・・:-(

Marvel社のプラグコンピュータや、GlobalScale社のSheevaPlugの上に SE EmbeddedをインストールしてTomcatを動かすデモが公開されています。 最初のビデオは、6:56まではEmbedded Javaの導入やプラグコンピュータの説明です それ以降で、SE Embeddedをダウンロードしたり、ランタイムが30数MB程度だという事を確認したりしてますね。後半のビデオは...

Java ME

ついにOracle Java ME Embedded Client (OJEC) 1.0 リリース!

  5/30未明、ついにOracle Java ME Embedded Client 1.0がリリースされました!Oracle Java ME Embedded Clientは、OJEC、JEC、Java ME for Embeddedなど様々な通称で呼ばれるもので、オラクルがリリースする公式の新しいCDC製品です。  OJECは、標準的なハードウェアアーキテクチャに対して事前セットアップ・ビルド・最適化されたバイナリとして提供されます。したがって、組み込みJavaを必要とするユーザにとっては、Java SEと同じように即座にバイナリをインストールして動作させ、Time-To-Market を最小化し、迅速に利用する事ができるようになります。 また、これまで同様に、CDC1.1.2、Foundation Profile(FndP)1.1.2をはじめ、Web Services(JSR-172), JDBC(JSR-169), RMI(JSR-66)などのプロファイルが利用可能であり、x86向けのLinux, WindowsではGUI向けのPersonal Basis Profile(PBP)1.1が利用できます。 SDK及びエミュレータは、Linux Ubuntu 10.04とWindowsXP/7向けに提供されます。また、プロファイルやデバッグを有効にするNetBeans向けのプラグインや、Eclipse向けのエミュレータ連携機能も提供される見込みです。興味のある開発者の皆さんは、次の3ステップで組み込みJavaの世界を体験してみてはいかがでしょうか?とても簡単にBeangleBoard上のOJECでJetty(Webサーバ)を動作させられるはずです! 1. Installing Linux on ARM-based BeagleBoard 2. Getting Started with the Oracle Java ME Embedded Client  3. Running a Small Server with the Oracle Java ME Embedded Client ちなみに、現時点でのOracle Java ME Embedded Client 1.0リリースでは、8MB以上のメモリを持つ次のOS/CPUでサポートされています。 ■ Headless(GUI無し)    - ARM v5 Linux   - ARM v6/v7 Linux   - MIPS Linux   - PPC Linux ■Headfull(GUI有り)    - Linux x86 PC   - Windows x86 PC 【参考リンク】 Java ME for EmbeddedJava ME for Embedded Release Note/Installation Guide/Runtime GuideJava ME for Embedded Documentation & FAQJava ME for Embedded DownloadHinkMond Wong's Blog

   5/30未明、ついにOracle Java ME Embedded Client 1.0がリリースされました!Oracle Java ME Embedded Clientは、OJEC、JEC、Java ME for Embeddedなど様々な通称で呼ばれるもので、オラクルがリリースする公式の新しいCDC製品です。  OJECは、標準的なハードウェアアーキテクチャに対して事前セットアップ・ビルド・...

Java Card

JavaCardディベロッパーコンテスト@SIMagine2011

SIMposium2011のSIMagineコンテストの中で、オラクルはJavaCard Connected Editionに特化したアプリケーションコンテスト"Java Card Platform: Connecting New Frontiers"をスポンサーしています。 SIMposiumは、キャリア/オペレータ、携帯端末メーカ、コンテンツプロバイダ、サービスプロバイダが一同に介し、(U)SIM技術を中心とした議論や発表が行なわれる大規模なイベントです。SIMagineはその中での、SIMベースの優れたモバイルアプリケーションを選考するコンテストです。 オラクルのセッションは賞金総額€5.5k、1位は€1.5kです☆Java Card Connectedベースのアプレット又はサーブレットで、Java SE/Java ME/Web Browserからアクセスして、DBやLDAPのようなバックエンドシステムと連携するようなアプリケーションを求めていますプラン〆切が6/11、実装〆切が9/30です! ちなみに、募集ページでは次のようなソリューション例が挙げられていましたどれも、Java Card Connectedの特徴であるWebベースアプリケーションやIP接続性を活かしたリッチUIやP2Pを切り口にしたもののようです。 BD-Jアプリケーションのセキュアなパーソナライゼーション クラウド利用者向けのオンカード暗号化 スマートグリッド SIMサービスのWebサービス化とモバイルアプリケーションとの連携 Zeroconfネットワーク内のP2Pカード間通信 WebベースUIでの、P2Pでの非接触支払い ただ、汎用的なサービスよりは、エネルギーやヘルスケア業界、国民共通IDなど、業界をしぼったソリューションが望ましいようです。 これを期に、ひと味違ったJava Cardプログラミングの世界に足を踏めいれてはいかがでしょう? NetBeansに含まれるSDKとエミュレータで、すぐにでも始められます!

SIMposium2011のSIMagineコンテストの中で、オラクルはJavaCard Connected Editionに特化したアプリケーションコンテスト"Java Card Platform: Connecting New Frontiers"をスポンサーしています。 SIMposiumは、キャリア/オペレータ、携帯端末メーカ、コンテンツプロバイダ、サービスプロバイダが一同に介し、(U)SIM...

Event

Java Developer Workshop on 5/19

 5/19にオラクル青山センター(港区北青山)にて、Java技術の最新情報や応用事例を紹介する開発者向けワークショップを開催します。本ワークショップでは、デスクトップ/組み込み向けのJavaプラットフォームを中心に、Java SE(Standard Edition)、Java ME(Micro Edition)、Java FXの技術概要と最新情報、そしてこれらの技術のさまざまな応用事例を紹介します。 基調講演では、Embedded JavaのチーフアーキテクトGreg Bollellaが、Java SEや組み込み分野で現在起こりつつあるエキサイティングな進化と、さらに未来を見据えた研究開発などについてお話します。さらに、セッションでは、JavaFX 2.0やNetBeans7.0の最新情報をはじめ、パートナー様によるOSGi最新動向(日立ソリューションズ様)、Blu-ray Javaプログラミング(ビジョネア様)、Javaベースの複合機プラットフォーム事例紹介(リコー様)など、Java開発者には抑えておきたいトピックが目白押しです! 参加費は無料なので、興味のある方は是非お早めにコチラから申し込みください!!

 5/19にオラクル青山センター(港区北青山)にて、Java技術の最新情報や応用事例を紹介する開発者向けワークショップを開催します。本ワークショップでは、デスクトップ/組み込み向けのJavaプラットフォームを中心に、Java SE(Standard Edition)、Java ME(Micro...

JavaFX

生まれ変わったJavaFX 2.0

最新のJavaFX 2.0は、専用のスクリプト言語はなく、Javaのライブラリ(jfxrt.jar)としてリリースされる事になりました。  2010/9のJavaOneで、JavaFXの再スタートがアナウンスされ、JavaFXはプライマリ言語としてのJava言語だけでなく、JavaScriptやScala, JRuby, Groovy, Jython, ClojureのようなJVM言語からも利用できるRIA(Rich Internet Application)用のJava APIとして生まれ変わる事になりました。これによって、Generics, Annotation, Multi-threadのようなJava言語の優れた言語機能、Java向けのIDEやデバッガ、プロファイラを利用してJavaFXアプリケーションを開発できることになります。また、Groovy, JRuby, Scalaなどは、容易にDSL(Domain Specific Language)を作るための機能を提供するため、JavaFXスクリプトライクなDSLを比較的容易に構築することができます。例えば、swibyというJRuby向けのプラグインを使えば、SwingのGUIをJavaFXライクに宣言的に定義できるようになります。  もう一つの重要な変更は、ターゲットをより絞った事です。JavaFXは、その登場以来、最新バージョンの1.3.1まで、「スクリーン非依存のRIAプラットフォーム」すなわち、デスクトップだけでなくモバイルとTVでも同様のリッチなアプリケーション開発を謳っていました。一方、JavaFX 2.0では、はじめから全てのプラットフォームを前提にライブラリをリリースせず、むしろデスクトップにフォーカスし、いわば「言語非依存のRIAプラットフォーム」を提供すると言えるかもしれません。同様に、2.0ではWindows(x86)のみをターゲットとし、MacやLinuxはサポートされません。(とは言え、実は多くのオラクルエンジニアのJavaFX2.0デモはMac上で動いていたりするので、あまり心配は要らないようです) 最後に、その他の特徴的な機能をリストアップします。 高性能描画パイプライン PRISMレンダリングエンジンによって、ハードウェアアクセラレーションを十分に使って豊かなグラフィックスを実現 メディア再生エンジン GStreamerベースのメディアフレームワークで、FLV(VP6/MP3)やH.265/AVCをサポート 埋め込みWebブラウザ WebkitベースのHTMLレンダリング。HTML5,JavaScript, SVG, DOMをサポート 50以上の多彩なUIコントロール チャート、メニュー、テーブル、パネルなど CSSサポート JavaFXアプリケーションとHTMLページのスタイルシートをまとめて切り替え可能 JavaFX 2.0は5/1にEarly Accessプログラムを終えて、今月中にはPublic βプログラムが始まる予定です 興味のある方は、JavaFX Partner Programをアクセスしてみて下さい! 9月予定のGeneral Avaialble版や12月予定のJDK7バンドル版に、あなたのアイデアが意見が取り込まれるかもしれません ;-) 【参考リンク】  JavaFX Roadmap JavaFX Partner Program JavaFX 2.0 and Alternative Languages Visage: JavaFXスクリプトの開発プロジェクト Swiby.rb: Swing用DSLライブラリFX EXPERIENCE: JavaFX関連リンク

最新のJavaFX 2.0は、専用のスクリプト言語はなく、Javaのライブラリ(jfxrt.jar)としてリリースされる事になりました。  2010/9のJavaOneで、JavaFXの再スタートがアナウンスされ、JavaFXはプライマリ言語としてのJava言語だけでなく、JavaScriptやScala, JRuby, Groovy, Jython,...

Java Embedded

Java SE Embedded 6u21

駐車メーターからネットブックまで、同じJavaプラットフォームが使える事を知ってましたか?  オラクルが2010/11にリリースしたJava SE Embedded 6u21を使うと、ARM、PowerPC、x86ベースの組込みデバイス上でも、デスクトップやサーバ向けのJava SE環境と完全に同等の機能が使えるようになります。Java SE Embeddedは、組込みデバイス向けにJava SEを最適化し、フットプリント最適化、Disk/ROM/Flashサイズ削減、起動時間短縮、電力消費削減を達成できるリリースです。このEditionでは、ディスプレイ、キーボード、マウスの無いヘッドレスデバイス向けのフットプリントを抑えたオプションが提供されています。また、JREからもヘッドレスに不要なAPI、オプションAPI、各種ツール類、キャラクタ変換、サーバー向けJITが取り除かれ、通常のJava SEに比べ1/2以下(30MB以下)のフットプリントを達成しています。  本リリースでの大きな新機能はARMv7マルチコアサポートです。マルチコア機能によってARMベースの組込みシステム上でも、バックグラウンドのJITコンパイルやパラレルGCが実現できるようになりました。他にも次のような新機能がサポートされています。 Java SE 6互換 豊富な機能とAPIセット、拡張機能やバグフィックスを含むJava SE 6u21と同期したリリース マルチコアサポート ARM, PowerPC向けのマルチコアサポート追加 (x86は全バージョンからサポート) プラットフォームサポート追加 Power Architecture e500v2 パフォーマンス改善 Java SE 6で搭載されたC1レジスタアロケータで、全てのプラットフォーム上のCaffeinMarkベンチマークで20%以上の性能向上し、Android 2.2 Froyoとの比較では2倍程度のベンチマーク性能(CaffeineMark 2.15x; kBench 2.5x; SciMark 1.9x) 【参考リンク】 Java SE Embedded @OTN Multi-Core and More @David Therkelsen's Weblog Java SE Embedded Refreshed @Jim Connor's Weblog Java SE Embedded Performance Versus Android 2.2

駐車メーターからネットブックまで、同じJavaプラットフォームが使える事を知ってましたか?  オラクルが2010/11にリリースしたJava SE Embedded 6u21を使うと、ARM、PowerPC、x86ベースの組込みデバイス上でも、デスクトップやサーバ向けのJava SE環境と完全に同等の機能が使えるようになります。Java SE...